选择排序是从数组中每次找最小的放在前面,其算法复杂度为O(n2),其排序是不稳定的。
//选择排序
#include<iostream>
using namespace std;
//选择排序声明
void SelectionSort(int a[],int n);
//主函数
int main()
{
//定义一个无序数组
int a[]={5,2,4,6,1,3};
//定义排序数组的长度
int length=sizeof(a)/sizeof(int);
//选择排序
SelectionSort(a,length);
for(int i=0;i<length;i++)
{
cout<<a[i]<<endl;
}
system("pause");
return 0;
}
//选择排序定义
//a[]是要排序的数组,n是数组的长度
void SelectionSort(int a[],int n)
{
//定义变量
int i=0,j=0,min=0,temp=0;
for(i=0;i<n-1;i++)
{
//每次遍历都要对min进行初始化
min=i;
for(j=i;j<n;j++)
{
//如果a[min]>a[j],则min=j
if(a[min]>a[j])
{
min=j;
}
}
//如果min!=i,则交换a[min]和a[i]
if(min!=i)
{
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
}
}