2. 图解-选择排序

1. 思想

  每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置

2. 图解过程

每一趟选最小的。

例1:

例2:

3.CODE in JAVA

public class SelectionSort {
	 
    public static void selectionSort(int[] a) {
        int n = a.length;
        for (int i = 0; i < n; i++) {
            int k = i;
            // 找出最小值的下标
            for (int j = i + 1; j < n; j++) {
                if (a[j] < a[k]) {
                    k = j;
                }
            }
            // 将最小值放到未排序记录的第一个位置
            if (k > i) {
                int tmp = a[i];
                a[i] = a[k];
                a[k] = tmp;
            }
        }
    }
 
    public static void main(String[] args) {
        int[] b = { 49, 38, 65, 97, 76, 13, 27, 50 };
        selectionSort(b);
        for (int i : b)
            System.out.print(i + " ");
    }
}

4.算法分析

排序类别

排序方法

时间复杂度

扫描二维码关注公众号,回复: 4543956 查看本文章

空间复杂度

稳定性

复杂性

平均情况

最坏情况

最好情况

选择排序

简单选择排序

O(N²)

O(N²)

O(N²)

O(1)

不稳定

简单

5.参考

https://www.cnblogs.com/jingmoxukong/p/4303289.html

http://www.cnblogs.com/xwz0528/p/4557743.html

https://www.cnblogs.com/zengzhihua/p/4456741.html

猜你喜欢

转载自blog.csdn.net/wengyupeng/article/details/84259262