算法之冒泡排序
1、算法描述
例如:6 2 5 1 8
第一轮
从第一个数开始,相邻两两比较,如果前一个小于后一个,就交换之,直到最后一个数,将最小的数移到数组的最后,至此完成第一轮。
6 2 5 1 8
6 5 2 1 8
6 5 2 1 8
6 5 2 8 1
第二轮
从第一个数开始,相邻两两比较,如果前一个小于后一个,就交换之,直到倒数第二个数,将次小的数移到数组的倒数第二位,至此完成第二轮。
6 5 2 8 1
6 5 2 8 1
6 5 8 2 1
第三轮
。。。。
2、代码实现
从大到小排序
void bubbleSort(int arg[]) { int len = strlen(arg); for(i=0;i<len;i++) { for(j=0;j<len-i;j++) { int temp; if (arg[j]<arg[j+1]) { temp=arg[j]; arg[j]=arg[j+1]; arg[j+1]=temp; } } } }
3、时间复杂度
o(n*n)