选择排序是一种简单直观得排序算法,
它得工作原理是:第一次从待排序得数据元素中选出最小或最大得一个元素,存放在序列的起始位置,
然后在从剩余的未排序元素中寻找到最小或最大的元素,然后放到已排序的序列的末尾,
一次类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。
![](https://i-blog.csdnimg.cn/blog_migrate/bfcc73e14f6ed90593a7f3d082149deb.png)
void selectSort(int *arr,int len)//int *arr = arr
{
int minIndex;//记录最小位置的下标
int i,j;
for(j=0;j<len-1;j++)
{
minIndex = j; //当前下标的位置
for(i=j+1;i<len;i++)
{
if(arr[minIndex] > arr[i])
{
minIndex = i;//最小值对应的位置下标,要进行更新
}
}
if(minIndex != j)
{
int temp = arr[j]; //第一个位置赋值
arr[j] = arr[minIndex]; //第二个位置赋值到第一个位置
arr[minIndex] = temp; //第一位置赋值到第二位置
}
show(arr,len);
}
}
int main()
{
int arr[5] = {3,2,15,4,9};
int len = sizeof(arr)/sizeof(arr[0]);//总长/单个长度=总个数
selectSort(arr,len);
return 0;
}