选择排序
题目描述
用选择法对10个整数从小到大排序。
输入格式
输入10个无序的数字
输出格式
排序好的10个整数
样例输入
4 85 3 234 45 345 345 122 30 12
样例输出
3
4
12
30
45
85
122
234
345
345
解题思路
选择排序的思路其实很简单,就是不断地从数组中找出最大或者最小的数字,依次放在数组的前端。
举个例子,对数组num[8,2,4,3,9,1]进行排序从小到大的排序:
- 首先找出最小的那个数1,将1的和num[0]的位置交换,得到 [1,2,4,3,9,8];
- 再从[2,4,3,9,8]中找最小值2,将2和num[1]的位置交换,得到[1,2,4,3,9,8];
- 再从[4,3,9,8]中找到最小值3,将3和num[2]的位置交换,得到[1,2,3,4,9,8];
- 再从[4,9,8]中找到最小值4,将4和num[3]的位置交换,得到[1,2,3,4,9,8];
- 再从[9,8]中找到最小值8,将8和num[4]的位置交换,得到[1,2,3,4,8,9];
至此排序过程结束,从大到小排序同理文章来源:https://www.toymoban.com/news/detail-775662.html
AC代码(C语言)文章来源地址https://www.toymoban.com/news/detail-775662.html
#include<stdio.h>
int main(){
int num[11];//用来保存输入的数字
int min;//用来保存最小数的下标
for(int i=0;i<10;i++){
scanf("%d",&num[i]);
}
for(int i=0;i<9;i++){
min=i;
for(int j=i+1;j<10;j++){
if(num[j]<num[min]) min=j;
} //该循环结束后,便找到了从i到数组末尾中的最小数
//交换最小数与位置i上的数
int temp=num[i];
num[i]=num[min];
num[min]=temp;
//i的位置确定后,便开始新一轮寻找,接着找从i到数组末尾中的最小数
} //i循环结束,便确定了每个数的位置
for(int i=0;i<10;i++){
printf("%d\n",num[i]);
}
return 0;
}
到了这里,关于【编程基础】021.用选择排序法对10个整数从小到大排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!