算法思維模式

思考題:
對一組數據進行排序
1、這組數據有什麼樣的特徵
有沒有可能包含有大量重複的元素?
如果有這種可能的話,三路快排是更好的選擇

2、這組數據有什麼樣的特徵?
是否大部分數據距離它正確的位置很近?是否近乎有序?
如果是這樣的話,插入排序是更好的選擇

3、這組數據有什麼特徵?
是否數據的取值範圍非常有限?比如對學生成績排序?
如果是這樣的話,計數排序是更好的選擇。

4、對排序有什麼額外的要求?
是否需要穩定排序?
如果是的話,歸併排序是更好地選擇?

5、數據的存儲狀況是怎麼樣的?
是否使用鏈表存儲的?
如果是這樣的話,歸併排序更爲方便

6、數據的存儲狀況是怎樣的?
數據的大小是否可以轉載在內存裏?
數據量很大,或者內存很小,不足以轉載在內存裏,需要使用對排序算法。

7、有沒有可能包含有大量重複的元素?
8、是否大部分數據距離它正確的位置很近?是否近乎有序?
9、是否數據的取值範圍非常有限?你如對學生成績排序?
10、是否需要穩定排序?
11、數據的大小是否可以裝載在內存裏?

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