#include<stdio.h>
#define N 5 //宏定义需要排列的数组的个数
int main(void){
int i,j,x,t,min; //min临时存储最小值
int a[N];
printf("please enter %d numbers:\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
//选择法排序
for(j=0;j<N;j++){ //外层循环
min=a[j]; //先设数列第j号为最小值,方便下列替换
for(i=j+1;i<N;i++){ //取出本次循环中的最小数
if(min>a[i]){
t=a[i];
a[i]=min;
min=t;
}
}
a[j]=min; //将取出的最小数放在数列第J号
}
for(i=0;i<N;i++) //排序输出部分
printf("%d,",a[i]);
return 0;
}
选择排序的思想就是每次从剩下的数中选一个最大/最小的数,排在剩下的数中的最后或者/最前,
比如对6 ,5 ,3 ,9进行选择排序,第一轮先找出这个4个数中的最小值(为3),放在最后一个位置(即和9交换位置);然后从剩下的3个数中(6 ,5 ,9)中找一个最小的(为5),放在倒数第二个,以此类推。最后就会得到排好序的:9 6 5 3.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82685.html