利用IndexOfMin(),编写选择排序函数
#include<stdio.h>
int Selection(int *p,int n);
int IndexOfMin(int *p,int n);
int IndexOfMin(int *p,int n)
{
int min=0;//最小数据元素索引
int i;
for(i=1;i<n;i++)
{
if(p[i]<=p[min])
min=i;
}
return min;
}
int Selection(int *p,int n)//选择排序
{
int min;//最小数据元素索引
int temp;
while(n>1)
{
min=IndexOfMin(p,n);
temp=p[min];
p[min]=p[n-1];
p[n-1]=temp;
n--;
}
return 0;
}
int main()
{
int i;
int a[]={2,12,3,45,23,8,67,34};
int n;
n=sizeof(a)/sizeof(a[0]);
Selection(a,n);
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
return 0;
}
结果: