猿问

(1) 顺序存储数据,实现简单选择排序,并显示每次排序过程中的序列;


 #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]);

}

}


慕函数6732512
浏览 1816回答 0
0回答
随时随地看视频慕课网APP
我要回答