冒泡法排序C++

2018-01-24 10:31:10来源:网络收集作者:管理员人点击

分享

[var1]

参考博客:http://blog.sina.com.cn/s/blog_5c5bc9070100y4un.html


http://c.biancheng.net/cpp/html/2443.html


基本思想及说明


冒泡排序的基本思想就是不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较,就选出最大的数;经过第2轮比较,就选出次大的数,以此类推。


冒泡排序的基本思想:从数组的第一个数开始,相邻两数进行比较,经过交换,小的数放在前面,大的数放在后面,一直到最后一个数与倒数第二个数比较完,这样比较一轮后,数组中最大的数“下沉”到了数组的最后;然后,新的一轮的比较又是从第一个数开始。。。。如果数组中有N个元素,则共需要比较N-1轮。


形象地描述这种排序方法:每次比较都会使较小的值像气泡一样“上浮”,而较大的值逐渐“下沉”!


下面以对 3  2  4  1 进行冒泡排序说明。
第一轮 排序过程
3  2  4  1    (最初)
2  3  4  2    (比较3和2,交换)
2  3  4  1    (比较3和4,不交换)
2  3  1  4    (比较4和1,交换)
第一轮结束,最大的数4已经在最后面,因此第二轮排序只需要对前面三个数进行再比较。
第二轮 排序过程
2  3  1  4 (第一轮排序结果)
2  3  1  4 (比较2和3,不交换)
2  1  3  4 (比较3和1,交换
第二轮结束,第二大的数已经排在倒数第二个位置,所以第三轮只需要比较前两个元素。
第三轮 排序过程
2  1  3  4  (第二轮排序结果)
1  2  3  4  (比较2和1,交换)
至此,排序结束。


源代码


#include
using namespace std;
void bubbleSort(int a[],int size);
int main()
{
int array[]={34,65,12,43,67,5,78,10,3,70},k;
int len=sizeof(array)/sizeof(int);
cout<<"The orginal array are:"< for(k=0;kcout< cout< bubbleSort(array,len);
cout<<"The sorted array are:< for(k=0;kcout< cout< system("pause");
return 0;
}
void bubbleSort(int a[],int size)
{
int temp;
for(int pass=1;pass {
for(int k=0;kif(a[k]>a[k+1])
{
temp=a[k];
a[k]=a[k+1];
a[k+1]=temp;
}
cout<<"第"< for(int i=0;i cout< cout< }
}运行结果:


冒泡法排序C++


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台