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

这篇博客介绍了如何使用C语言实现选择排序算法来对一个包含10个数的序列进行升序排列。通过两层循环,首先找出剩余未排序部分的最小值,然后与当前未排序的第一个元素交换位置,经过9次选择和交换后,数组完成升序排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

处理思想:

  • 对有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]); // 循环输出数组

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值