Array & Hashing

Array & Hashing #

相似的事物放一起,是讓環境井然有序的關鍵,這也是電腦世界中陣列(Array)此資料結構的設計理念。 因為事物都在同處,我們可藉索引在常數時間(O(1))內找到對應元素(隨機存取)。

如果不是相似的事物,如果不放在一起,我們還有方法能好好整理它們嗎?可以,用鍵(Key)值(Value)架構即可。 我們先定好一個雜湊(Hashing)函數,讓要管理的事物都依循此函數的判斷放到對應區塊中。這樣就能在常數時間(O(1))內找到鍵所對應的值。

Notes:

  • 有時反向遍歷陣列,做法會簡單很多
  • 程式碼要一開始就簡潔很難,寫完再整理比較容易
  • 善用陣列索引的有序性,有時會比雜湊表還好用