讀《Java數據結構和算法》(第三章)

讀《Java數據結構和算法》(第三章)

一、第三章3

1、簡單排序
(1)二分查詢法比線性查找法要快很多,但只應用於有序的數據
(2)計算機算法不能通覽所有數據,不能看到全景,只能遵循計算機比較操作,同一時間內對兩個成員進行比較

2、冒泡排序
(1)運行非常慢
(2)每次0-1 1-2 2-3這樣的輪換,在算法執行的時候,最大的數據總是“冒泡”到數組的頂端
(3)冒泡排序的效率N*(N-1)/2

3、選擇排序
(1)必要的交換次數從O(NN)減少到O(N)
(2)比較次數仍然爲O(N
N)

4、插入排序
(1)仍然需要O(N*N)的時間
(2)比冒泡排序快一倍,比選擇排序快一點

5、總結比較
(1)選擇排序雖然把交換次數降到了最低,但比較的次數仍然很大。當數據量很小,並且交換數據相對於比較數據更加耗時的情況下,可以應用選擇排序
(2)大多數情況下,假設當數據量比較小或者基本上有序時,插入排序算法是三種簡單排序算法中最好的選擇
(3)對於更大數據量的排序來說,快速排序通常是最快的方法
(4)排序包括比較數組中數據項的關鍵字和移動相應的數據項(數據項的引用)直到它們排好序爲止
(5)時間複雜度均爲O(n*n)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章