C语言选择排序算法(升序)

来源:互联网 发布:小米快传 mac 编辑:程序博客网 时间:2024/05/17 23:47

处理思想:

  • 对有n个数的序列(存放在数组a(n)中),从中选出最小的数,与第1个数交换位置;  
  • 除第个数外,其余n-1个数中选最小的数,与第2个数交换位置;  
  • 依次类推,选择了n-1次后,这个数列已按升序排列。

int j = 0, imin = 0, s = 0, a[10];  

printf("\n input 10 numbers:\n");  

for(int i=0;i<10;i++)  

scanf("%d",&a[i]);  // 循环输入10个数

for(int i=0;i<9;i++)  { 

imin=i;   // 假设第一个数最小,把下标赋值给imin

for(j=i+1;j<10;j++){  

if(a[imin]>a[j]){

 imin=j; // 保证imin中记录的下标是最小数的下标 

}

}  

// 比较下标是否一致,否则调换位置,保证按序排列

if(i!=imin)  {

s=a[i]; 

a[i]=a[imin]; 

a[imin]=s; 

printf("%d\n",a[i]); // 循环输出数组

}

0 0
原创粉丝点击