选择排序法思路比较简单,即在每步中选择最小的值来进行排序。
方法:
1、首先从原数组的n选择最小的一个数,将其与位于最左边位置的数进行交换。
2、再从剩下的n-1个数选出最小的数,将其与从左数第二位置的数进行交换。
3、一直重复此操作,直到排序完成。
在此举一个例子说明
23 9 15 74 67 30 28 44
9 23 15 74 67 30 28 44
9 15 23 74 67 30 28 44
9 15 23 74 67 30 28 44
9 15 23 28 67 30 74 44
9 15 23 28 30 67 74 44
9 15 23 28 30 44 74 67
9 15 23 28 30 44 67 74
#include <stdio.h>
#define ARRAYLEN 10
void SelectSort(int a[],int n);
int main()
{
int i,a[ARRAYLEN];
for(i=0;i<ARRAYLEN;i++)
scanf("%d",&a[i]);
SelectSort(a,ARRAYLEN);
for(i=0;i<ARRAYLEN;i++)
printf("%d ",a[i]);
return 0;
}
void SelectSort(int a[],int n)
{
int i,j,k,temp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(a[k]>a[j])
k=j;
}
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}