【手写排序算法及优化】冒泡排序
2015-03-28 21:42
253 查看
c++代码
#include<iostream.h>
void Print(int A[],int len)
{
for(int i=0;i<len;i++)
{
cout<<A[i]<<" ";
}
cout<<endl;
}
void BubbleSort(int A[], int len)
{
int i,j,temp;
int flag;
for(i=len;i>=1;i--)
{
flag =0;
for(j=0;j<=i;j++)
{
if(A[j]>A[j+1])
{
temp = A[j];
A[j] = A[j+1];
A[j+1] = temp;
flag =1;
}
}
cout<<"第"<<i+1<<"趟排序后";
Print(A,6);
if(flag==0)
return;
}
}
void main()
{
int A[]={2,3,6,5,4,1};
cout<<"原始序列 ";
Print(A,6);
BubbleSort(A,6);
cout<<"排序后序列 ";
Print(A,6);
}
运行结果:
原始序列 2 3 6 5 4 1
第1趟排序后2 3 5 4 1 6
第2趟排序后2 3 4 1 5 6
第3趟排序后2 3 1 4 5 6
第4趟排序后2 1 3 4 5 6
第5趟排序后1 2 3 4 5 6
排序后序列 1 2 3 4 5 6
#include<iostream.h>
void Print(int A[],int len)
{
for(int i=0;i<len;i++)
{
cout<<A[i]<<" ";
}
cout<<endl;
}
void BubbleSort(int A[], int len)
{
int i,j,temp;
int flag;
for(i=len;i>=1;i--)
{
flag =0;
for(j=0;j<=i;j++)
{
if(A[j]>A[j+1])
{
temp = A[j];
A[j] = A[j+1];
A[j+1] = temp;
flag =1;
}
}
cout<<"第"<<i+1<<"趟排序后";
Print(A,6);
if(flag==0)
return;
}
}
void main()
{
int A[]={2,3,6,5,4,1};
cout<<"原始序列 ";
Print(A,6);
BubbleSort(A,6);
cout<<"排序后序列 ";
Print(A,6);
}
运行结果:
原始序列 2 3 6 5 4 1
第1趟排序后2 3 5 4 1 6
第2趟排序后2 3 4 1 5 6
第3趟排序后2 3 1 4 5 6
第4趟排序后2 1 3 4 5 6
第5趟排序后1 2 3 4 5 6
排序后序列 1 2 3 4 5 6
相关文章推荐
- 【常用排序算法】冒泡排序与冒泡排序优化改进(Java实现)
- 排序算法之冒泡排序:一种优化的冒泡排序算法
- 排序算法入门之冒泡排序优化
- 排序算法入门之冒泡排序优化
- 排序算法-------冒泡排序及其优化
- 【手写排序算法及优化】直接插入排序
- 排序算法:冒泡排序(代码优化)
- 排序算法-对冒泡排序的优化改进算法
- 排序算法之优化版冒泡排序
- 排序算法之冒泡排序 - 优化版
- 排序算法(四)冒泡排序及其优化
- 【手写排序算法及优化】快速排序
- 排序算法及优化举例
- 29. 排序算法(2):冒泡排序
- 排序算法之冒泡排序
- 经典排序算法回顾:插入排序,冒泡排序
- 排序算法之冒泡排序
- C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序
- java 排序算法--冒泡排序
- 常用算法--基本排序算法(冒泡排序,选择排序,插入排序,快速排序,归并排序,桶排序)