C 冒泡排序
简而言之就是往上冒泡泡
冒泡排序,顾名思义,就是相邻的两项不断地比较,要是条件成熟就互换,就这样。
//冒泡
void BubbleSort(int a[], int n){
int i, j, temp, flag = 1;
//n个数,一共跑n-1趟就好了,n-1个就拍好了,最后一个肯定是好的
for (i = 0; i < n-1; i++) {
flag = 0;
/*
这里从后往前走,数字小的会不断地交换到前面,肯定的是,每排一次
最前面的一定是在拍的这些数字里最小的;排过之后,下一趟就排剩下的
好了,直到都排完。
当然如果在n-1趟之前排完之后,跳出来就好了。
*/
for (j = n-1; j > i; j--) {
if(a[j-1] > a[j]){
//只要发生交换说明这一趟还并没有真正的有序
temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
flag = 1;
}
}
//要是没有发生交换,说明就已经有序那就OK了
if(flag == 0)
return;
}
}
//初始值
5260391748
一次
0526139478
二次
0152634978
三次
0125364798
四次
0123546789
五次已经排完
0123456789
六次确认一次,使得falg为0,跳出来
0123456789
本文来自博客园,作者:赫凯,转载请注明原文链接:https://www.cnblogs.com/heKaiii/p/15491246.html