简介
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。
思想
代码实现是从小到大,也可以写从大到小,只需要改变循环变量即可。
1.像是10层楼 每层放值对应的数值 先从最低处开始。
2.即每次从要找的楼层往上找的最小值即是这层该放的数值。
3.逐层找到最高层全部完成。
4.类似冒泡 的一种方法
代码
//选择排序
#include<stdio.h>
int selectionSort(int arr[]){
int i,j; //i是要处理的楼层 j是i层以上的所有楼层
int temp;
for(i=0;i<10;i++){
int min=arr[i];
int minIndex=i; //储存要放值的楼层
for(j=i;j<10;j++){ //这个循环结束 就把最小值放置到了该楼层 并记录在哪找到的这个最小值
if(arr[i]>arr[j]){
arr[i]=arr[j];
minIndex=j;
}
}
arr[minIndex]=min; //把该楼层上的值 放到刚才记录的最小值楼层上
}
}
int main(){
int arr[10]={5,2,3,6,4,1,8,10,9,7}; //将数组排序
selectionSort(arr);
int i;
for(i=0;i<10;i++){
printf("%d ",arr[i]);
}
return 0;
}