**如下
import edu.princeton.cs.algs4.stddraw;
public class selection
}draw(a, i, min);
exch(a, i, min);
//程式休眠
try catch (exception e)
//清除影象
clear();
} //畫出排序完成後的影象
draw(a, n + 1, n + 1);
} /**
* 畫圖,大於當前元素e的元素在內迴圈過程中全部參與比較,而其中最小的元素以紅色標出,其餘的元素以黑色標出
* @param a 排序元素陣列
* @param e 當前的元素
* @param min 最小的元素
*/public static void draw(comparable a, int e, int min) else if (i >= e && i != min) else
} }public static void clear()
private static void exch(comparable a, int i, int j)
private static void show(comparable a)
private static boolean less(comparable v, comparable w)
private static boolean issorted(comparable a)
public static void main(string args)
}
執行結果例項:
演算法(第4版) 2 1 18 可視軌跡(插入排序)
修改2.1.17給出的解答,為插入排序生產正文中類似的可視軌跡。import edu.princeton.cs.algs4.stddraw public class insertion draw a,i,min i繪出紅色,i到min繪出黑色,其餘繪灰色 延遲 try catch exception...
演算法(第4版) 1 1 13
編寫一段 列印出乙個m行n列的二維陣列的轉置 交換行和列 package temporary import edu.princeton.cs.algs4.public class practice public static void main string args todo 自動生成的方法存根 ...
《演算法(第4版)》 堆排序
如果根節點的索引為0,那麼最後乙個非葉子節點的索引為 n 2 1。n為節點的數量。最後乙個節點的索引為 n 1。最後乙個節點的父節點即為最後乙個非葉子節點。已知最後乙個節點的索引,以此推導出其父節點索引。如果n為奇數,假設最後乙個非葉子節點的索引為k1,那麼有 2 k1 2 n 1,所以 如果n為偶...