#include <stdio.h>//冒泡排序,开始的时候两个数进行比较,大的向后小的向前,第一次比较很容易的就把最大的一个数字放到了最后小的呢,继续向前,第二次当然也找到了第二个大的,放到倒数第二的位置,如此下去便可。这个是优化的冒泡排序方法,让k=j保存最后的那个数的下标,这样k后面的数都是排序好的了,这个排序是稳定的,时间复杂度是N平方void main(){int array[10] = {1,2,11,22,33,4,23,234,4,6};int length = sizeof(array)/sizeof(array[0]);int k=0, s=0, i=0, j=0, m=0;//冒泡排序开始int a;for(a=0;a<=9;a++){ printf("%d \n",array[a]); }for(i = length-1;i>0;i=k){for(j=0, k=0;j<i;j++){if(array[j]>array[j+1])//把比较出来大的数据向后移动{m=array[j];array[j]=array[j+1];array[j+1]=m;k=j;}}}//冒泡排序结束,输出显示排序的结果for(s=0; s<length; s++){printf("%d\n",array[s]);}}
目前暂无任何回答
- 0 回答
- 0 关注
- 1815 浏览
添加回答
举报
0/150
提交
取消