排序演算法類的模板
阿新 • • 發佈:2018-12-09
public class Example { public static void sort(Comparable[] a) { } private static boolean less(Comparable v,comparable w) { return v.compareTo(w)<0; } private static void exch(Comparable[] a,int i,int j) { Comparable tComparable=a[i];a[i]=a[j];a[j]=t; } private static void show(Comparable[] a) { for (int i = 0; i < a.length; i++) { StdOut.println(); } private static boolean isSorted(Comparable[] a) { for (int i = 1; i < a.length; i++) { if (less(a[i],a[i-1])) return false; return true; } private static void main(String[] args) { String[] a =In.readStrings(); sort(a); assert isSorted(a); show; } }
後續程式碼會呼叫模板
排序演算法可以分為兩類:除了函式呼叫所需的棧和固定數目的例項變數之外無需額外記憶體的原地排序演算法,以及需要額外記憶體空間來儲存另一份陣列的其他排序演算法。