码迷,mamicode.com
首页 > 编程语言 > 详细

选择排序

时间:2016-10-07 17:31:55      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

/* 选择排序 */
void SelectionSort(int a[]) {
    int i, j;
    int MinVal ;
    int MinX;
    for (i = 0; i < 8; i++) { /* 选取n-1次最小元素 并进行交换 */
        MinVal = 999999;
        for (j = i; j < 9; j++) { /* 从未排好序的数组中选取最小的元素 */
            if (a[j] < MinVal) {
                MinX = j;
                MinVal = a[j];
            }
        }
        int t = a[i];
        a[i] = a[MinX];
        a[MinX] = t;
    }
}
最好 最坏 平均情况下的时间复杂度均为O(n^2)
选择排序是不稳定的 举个例子: 5 5 2 1 3
1. 2被选出来 和第一个5交换 于是2个5 的 相对位置发生了变化
故选择排序是不稳定的排序方法。

选择排序

标签:

原文地址:http://www.cnblogs.com/minesweeper/p/5936095.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!