有沒有人對一套常見搜索和排序算法的Java代碼實現有很好的參考。在Java中搜索和排序算法的高效實現
皮膚貓有很多種方法(在網上很容易找到各種算法的Java代碼),但是有沒有Java中最有效的方法列表來實現這些不同的算法?
有例如http://www.algorithmist.com但大多數實現都是在C/C++中。
乾杯!
有沒有人對一套常見搜索和排序算法的Java代碼實現有很好的參考。在Java中搜索和排序算法的高效實現
皮膚貓有很多種方法(在網上很容易找到各種算法的Java代碼),但是有沒有Java中最有效的方法列表來實現這些不同的算法?
有例如http://www.algorithmist.com但大多數實現都是在C/C++中。
乾杯!
我建議看看Java標準庫源代碼本身。
Collections和Arrays類具有可以學習的二進制搜索和二進制排序實現。
下面是從OpenJDK的爲Collections.java來源:http://www.docjar.com/html/api/java/util/Collections.java.html
我發現Sedgewick的書「Java中的算法(第1-4部分)」很有用。代碼是available online,但沒有這本書可能很難理解。
有些地圖,集合,列表等標準算法可用。你必須在 download the src.zip from the Oracle-Java homepage的地方提供。
對於常見的使用情況,算法應該非常高效,但是當然,對於每種算法,數據都存在最壞情況。因此,在特殊情況下,您將能夠找到或生產出更好的產品。
是的我明白,核心是一樣的,但有些impls有更大的開銷,使用額外的變量,其中一個不是必需的(說保留櫃檯等)。 – NightWolf 2012-04-15 05:58:14
兩點:1,如果你明白,那你爲什麼在意?只要您開始使用足夠大的數據集,impl收益就會被淹沒。我明確列出了grepcode,因爲你問了。 – 2012-04-15 06:20:58