选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
 
过程演示:
 
实例:
 
//选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
 
#include
 
void main()
 
{
 
int i,j,temp;
 
int a[]=;
 
int len=8;
 
/*
 
len - 1:
 
当前面都是最小的数字了,则最后还剩一个数就没有比较的必要了,最后一个数字已经和len-2那个数字进行了比较
 
*/
 
for (i = 0 ; i < len - 1 ; i++)
 
{
 
//每次假定当前i是最小值
 
int min = i;
 
// 访问未排序的元素
 
for (j = i + 1; j < len; j++)
 
{
 
//找到剩下的未排序元素中的最小值
 
if (a[j] < a[min])
 
{
 
//记录实际的最小值(或剩下元素中的最小值)
 
min = j;
 
}
 
}
 
/*
 
如果实际的最小值(或剩下元素中的最小值)的索引与当前索引不同
 
则当前索引不配做最小值,应该交换
 
*/
 
if(min != i)
 
{
 
// 交换两个变量
 
temp=a[min];
 
a[min]=a[i];
 
a[i]=temp;
 
}
 
}
 
//遍历结果
 
for(int x=0;x
 
printf("%d\n",a[x]);
 
}
 
}

dawei

【声明】:嘉兴站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。