《演算法(第四版)》排序 模板

2021-07-10 22:12:47 字數 931 閱讀 6291

本書對排序類演算法有乙個模板,包括了以下幾種方法:

(1)sort():這個方法裡面實現的就是排序的演算法

(2)less():這個方法裡是利用了comparable介面裡的compareto方法,其中compareto方法對於本物件與傳入的比較物件小於,等於,大於,分別返回負數,0,正數

這個方法如果compareto方法結果為負數就返回true,否則返回false

(3)exch():這個方法就是exchange,交換,用的傳統方法,先找個temp,然後三者交換

(4)show():將陣列裡的元素進行列印

(5)main():

模板具體如下

public class selection 

private static boolean less(comparablev, comparablew)

private static void exch(comparable a, int i, int j)

private static void show(comparable a)

} public static boolean issorted(comparable a)

return true;

} public static void main(string args) throws filenotfoundexception ;

sort(a);

assert issorted(a);

show(a);

}}

觀察之後可以發現:

排序演算法的模板傳入的引數規定了,都得是實現了comparable介面的資料型別,這樣就可以直接按照各自的資料比較習慣進行排序了

v.compareto(w)<0這樣的**,如果v和w無法進行比較,或者兩者之一有乙個null,則v.compareto(w)會丟擲乙個異常。

《演算法(第四版)》排序 希爾排序

由 插入排序 可知,它是一種不穩定的演算法,當序列已經接近有序時,排序速度較快,但是如果最小的在最後面,那可能需要最小的交換了n 1次才能換到最前面。希爾排序在插入排序的基礎上進行了改進,交換不相鄰的元素,以對陣列的區域性進行排序,並最終用插入排序將區域性有序的陣列排序,具體做法如下。1.假設陣列長...

《演算法(第四版)》排序 堆排序

1.什麼是堆?講堆排序之前,先了解一下什麼是堆。堆其實相當於一種資料結構,它的本質是一種陣列物件,但是它裡面的內同又是一顆完全二叉樹結構,它的特點是父節點的值大於 或小於 兩個子節點的值,常常用於優先佇列 堆排序等。堆在陣列中的索引有如下的特點。陣列索引為k的元素,它的父節點的索引為 k 2 下取整...

插入排序(演算法第四版)

原理闡述 就像打牌一樣,拿到手上的是無序的牌,從第二張開始,將牌一張一張與前面的比較,遇到第乙個比自己小的,就插在它後面,依次執行到最後一張,結束後,就排好序了 note 3 5 2 1 以2為例 3 2 5 1 2 3 5 1 2 3 1 5 2 1 3 5 1 2 3 5 實現 package ...