从数组中选择最小元素,将它与数组的第一个元素交换位置。再从数组剩下的元素中选择出最小的元素,将它与数组的第二个元素交换位置。不断进行这样的操作,直到将整个数组排序。
#include<iostream>
#include<string>
using namespace std;
int main()
{
int a[]={3,5,2,4,1};
int n=sizeof(a)/sizeof(a[0]);
cout<<n;
for(int i=0;i<n-1;i++)
{
int min=i;
for(int j=i+1;j<n;j++)
{
if(a[min]>a[j])
{
min=j;
}
}
swap(a[i],a[min]);
}
for(int i=0;i<5;i++)
{
cout<<a[i]<<" ";
}
}
#include<iostream>
using namespace std;
void show(int a[],int n)
{
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
}
int main()
{
int a[]={3,4,5,2,1};
int n=sizeof(a)/sizeof(a[0]);
//选择排序
int min,minindex;
for(int i=0;i<n;i++)
{
min=9999;
minindex=i;
for(int j=i;j<n;j++)
{//每次选出最小的放前面
if(min>a[j])
{
min=a[j];
minindex=j;
}
}
swap(a[i],a[minindex]);
}
show(a,n);
}