算法第四版的简化的笔记!给自己看的
数据,一个长度为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); } }