思想:选择最小的元素,放在未排序数组之首,即位置i
0到i-1是已经排序好的数组
定义一个变量,记录本次循环中找到的最小值的下标
将最小元素与i位置元素互换
#include <iostream>
using namespace std;
//参数为数组和数组中元素的个数
void selectionSort(int a[],int n)
{
int i=0;
int minIndex=0;
for(i=0;i<n;i++)
{ //寻找[i,n)区间里的最小值
minIndex=i; //minIndex表示当前最小值所在的位置
for(int j=i+1;j<n;j++)
{
if(a[minIndex]>a[j])
{
minIndex=j;
}
}
if(i!=minIndex)
{
swap(a[i],a[minIndex]);
}
}
}
int main()
{
int b[5]={1,3,4,2,5};
selectionSort(b,5);
int i=0;
for(i=0;i<4;i++)
{
cout<<b[i]<<' ';
}
cout<<b[i]<<endl;
return 0;
}