#include <iostream>
using namespace std;
void sort(int a[],int n)
{
int i,j,temp,min;
for(i=0;i<n-1;i++) //若取i=0
{
min=i; //min=o;即a[min]=a[0];
for(j=i+1;j<n;j++) //选出最小的数
{
if(a[min]>a[j]) //a[min]=a[j]----可知a[j]为最小的数;把j的值赋给min
{
min=j;
}
temp = a[min]; //以下三句作用是把a[min]放到a[i]位置----a[i]与a[j]交换
a[min] = a[i];
a[i] = temp;
}
}
}
int main(void)
{
int n,i;
cout<<"请输入n:"<<endl;
cin>>n;
cout<<"请输入n个数:"<<endl;
int *a=new int[n];
for(i=0;i<n;i++)
{
cin>>a[i];
cout<<endl;
}
sort(a,n);
cout<<"选择法排好顺序后:"<<endl;
for(i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}
/* * 选择排序算法的原理:
* 先将数据列表中的第一个数与后面的每一个数进行比较,把小的数放在第一个数中,
* 从而找出最小的,然后在用第二个数与后面的每一个数进行比较......
* 直到找到最后一个数