基础:排序算法(三)选择排序
算法思想:
选择排序是一种不稳定的排序方法,每一趟从待排序的数据元素中选出最小(或最大)
的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
其主要应用于计算机和数学领域。它的主要优点与数据移动有关。
如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,
它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。
在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。
详细介绍:选择排序
#include<stdlib.h>
#include<stdio.h>
void main()
{
int x[5]={9,8,3,5,2};
int i,j,min,temp;
for (i = 0; i < 5-1; i++)
{
min = i;
for (j=i+1; j<5; j++)
{
if(x[j]<x[min])
{
min =j;
}
}
if(min!=i)
{
temp = x[i];//把最大值赋给temp
x[i] = x[min];//最小值放在数组首
x[min] = temp;//最大值放在数组末
}
}
printf("原数组为9 8 3 5 2\n");
printf("排序后数组为:");
for (i = 0; i < 5; i++)
{
printf("%-3d",x[i]);
}
system("pause");
}
结果: