若给出一组9,6,8,2数据,从小到大排序实现简单排序如下:
第一轮:6,9,8,2 6,9,8,2 (2),9,8,6 确定第一个最小数 2,比较3次;
第二轮:8,9,6 (6)9,8 确定最小数6 比较2次;
第三轮:(8),9 确定最小数8,比较一次;
9不与其他比较。
空间复杂度O(1)。
发现,给出4个数据,比较3轮,第一位数逐渐与其他位数比较,查找最小数。依次实心。
#include<stdio.h>
int main()
{
int array[]={5,9,7,3,6,4,55,87};
int i;
int j;
int temp;
int len = sizeof(array)/sizeof(array[0]);
for(i=0;i<len-1;i++)
{
for(j = i+1;j<len;j++)
{
if(array[i]>array[j])
{
temp =array[j];
array[j] = array[i];
array[i] = temp;
}
}
}
for(i=0;i<len;i++)
printf(" %d ",array[i]);
return 0;
}
测试如下:
3 4 5 6 7 9 55 87