冒泡法排序指的是在排序时,每次比较数组中相邻的两个数组元素的值,将较小的数(从小到大排列)排在较大的数前面。
每一轮比较,数组中最大或最小的数就会从最右面冒出来。
举例: 99 32 -21 100
第一轮:
90 与 32比较,90>32,则互换位置:32 90 -21 100
-21与90比较,90>-21,则互换位置:32 -21 90 100
100与90比较,90<100,则不用互换位置:32 -21 90 100
第一轮比较完成,最大的数字浮动了最右边。
每轮中比较新序列中第n个元素和n+1个元素比较。
第二轮:
-21与32比较,32>-21,则互换位置:-21 32 90 100
90与32比较,32<90,则不用互换位置:-21 32 90 100
第二轮比较完成,找到数组中第二大的数,浮动到了最右边第二个位置。
第三轮:
-21与32比较,-21<32,则不用互换位置。
到此,整个序列排序完毕,从过程可以得出有n个数据,只需要比较n-1轮,除了第一轮之外,每轮不需要全部比较(每轮比较最大的数会在右边浮出)。
代码实现 :
#include
int main()
{
int arr[10]={1,2,4,3,6,5,7,8,10,9};
int sz = sizeof(arr)/sizeof(arr[0]);//计算元素个数
int i,j;
for(i=0;iarr[j+1])
{
int temp = arr[j];//定义临时变量,将其中一个数据先保存
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}//实现了冒泡排序
for(i=0;i
代码输出结果:
有什么不懂欢迎评论或私聊!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)