算法第四版的简化的笔记!给自己看的

  数据,一个长度为n的无序数组

  api

  exch([]a,i,j) 交换数组i与j位置的元素

  less(i,j) 判断大小:数组元素i<j?true:false

一 选择排序 selection

  i=0;从i~n中选取最小值与i交换位置;i++ ;循环;

特点

  运行时间与输入无关(无论多么乱,或者元素全部一样) 排序时间是一样的。

  数据移动是最少的,每个元素只交换一次。

public static void sort(Comparable[] a) {
        int n = a.length;
        for (int i = 1; i < n; i++) {
            int min = i;
            for (int j = i; j < n; j++) {
                if (less(a[j], a[min])) {
                    min = j;
                }
            }
            exch(a, i, min);
        }
    }
View Code

相关文章: