【计算机笔记】Java 排序
约定 待排序的元素需要实现 Java 的 Comparable 接口,该接口有 compareTo() 方法,可以用它来判断两个元素的大小关系。 使用辅助函数 less() 和 swap() 来进行比较和交换的操作,使得代码的可读性和可移植性更好。 排序算法的成本模型是比较和交换的次数。 public abstract class Sort < T extends Comparable < T > > { public abstract void sort ( T [ ] nums ) ; protected boolean less ( T v , T w ) { return v . compareTo ( w ) < 0 ; } protected void swap ( T [ ] a , int i , int j ) { T t = a [ i ] ; a [ i ] = a [ j ] ; a [ j ] = t ; } } 选择排序 从数组中选择最小元素,将它与数组的第一个元素交换位置。再从数组剩下的元素中选择出最小的元素,将它与数组的第二个元素交换位置。不断进行这样的操作,直到将整个数组排序。 选择排序需要 ~N 2 /2 次比较和 ~N 次交换,它的运行时间与输入无关,这个特点使得它对一个已经排序的数组也需要这么多的比较和交换操作。 public class