排序算法——选择排序
来源:互联网 发布:php万能小偷 编辑:程序博客网 时间:2024/05/22 02:10
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此类推,直到所有元素均排序完毕。
最坏时间复杂度 O(n^2)
选择排序是不稳定的排序算法。例如5 8 5 2 9。第一次选择5 与 2交换 ,之后两个5的相对位置就改变了。
- #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行代码,每次遍历记录最小值的下标,最终选取的是当前剩余序列的最小值。
- 排序算法—选择排序
- 排序算法之选择排序——简单选择排序
- 数据结构&算法实践—【排序|选择排序】选择排序
- 排序算法1—插入排序、选择排序、冒泡排序
- 排序算法之——选择排序
- 排序算法——选择排序
- 排序算法——选择排序
- 排序算法——简单选择排序
- 排序算法总结——选择排序
- 内部排序算法——选择排序
- 排序算法2——选择排序
- 排序算法——选择排序
- 排序算法——选择排序
- 排序算法——选择排序
- 排序算法——选择排序
- 排序算法——选择排序
- 排序算法——选择排序
- 经典排序算法——选择排序
- 程序员的生活
- java.lang.reflect.Method.invoke(Unknown Source)
- NC常用命令
- 和谐的心
- 和谐的心
- 排序算法——选择排序
- 学习ubuntu 网址
- 排序算法——插入排序
- 排序算法——二分插入排序
- 真悲剧
- 感言
- 小试牛刀
- 用C++实现简单的文件I/O操作
- VC下实现DirectSound