您的位置:首页 > 其它

排序算法——选择排序

2009-11-08 09:41 190 查看
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此类推,直到所有元素均排序完毕。

最坏时间复杂度 O(n^2)

选择排序是不稳定的排序算法。例如5 8 5 2 9。第一次选择5 与 2交换 ,之后两个5的相对位置就改变了。



Code:

#include <stdio.h>

void select_sort(int a[], int num)

{

int i, j, k, min, temp;

for (i = 0; i < num - 1; i++) {

min = i;

for (j = i + 1; j < num; j++) {

if (a[min] > a[j]) {

min = j;

}

}

temp = a[i];

a[i] = a[min];

a[min] = temp;

}

}

void print(int a[], int num)

{

int k;

for (k = 0; k < num; k++)

printf("%d ", a[k]);

printf("/n");

}

int main()

{

int i, num;

int a[10] = {1,7,5,8,4,2,6,9,3,10};

num = sizeof(a) / sizeof(int);

select_sort(a, num);

print(a, num);

return 0;

}

8-18行代码,每次遍历记录最小值的下标,最终选取的是当前剩余序列的最小值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: