/*
*算法思想:
* 在每一趟的排序中,从待排序列中选出关键字最小或者最大的元素放在其最终的位置上
*/
/*
*过程分析:
* 在第i趟直接排序中,通过n-i次关键字的比较,从n-i+1个元素中选出关键字最小的元素
* ,与第i个元素进行交换。经过n-1趟比较,直到表有序为止
*/
/*
*性能分析:
* 时间复杂度O(n^2);
*/
#include <stdio.h>
#define length 9
void SelectSort(int *order)
{
int i,k,j;
for(i=0; i<length-1; i++)
{
k=i;
for(j=i+1; j<length; ++j)
if(order[j]<order[k])k=j;
if(k!=i)
{
int temp=order[i];
order[i]=order[k];
order[k]=temp;
}
}
}
int main()
{
int order[length]= {0,49,52,65,97,35,13,27,49};
SelectSort(order);
int i;
for(i=0; i<length; i++)printf("%d ",order[i]);
return 0;
}
选择排序——直接选择排序
最新推荐文章于 2018-10-19 17:45:35 发布