事前準備

資料

儲存結構

儲存的結構有很多種,但是最底層以 Array 和 Linked List 為主。

操作

不外乎就是增、刪、查、改,英文世界裡常見的 CRUD (Create, Read, Update, Delete) 。電腦執行就是要盡可能的高效率的去完成以上幾個動作,因此就衍伸出了時間複雜度,而當資料用不同的方式儲存時就會有不同的空間複雜度,因此不同的演算法的目的就是要想辦法優化兩者的複雜度,或是在中間取得一個最佳的平衡。

不同的儲存結構與操作有時候可以完成一樣的事情

  • 資料用陣列儲存,用 for 迴圈印出每一格的資料

for i in range(len(arr)):
    print(arr[i])
  • 資料用陣列儲存,用 while 迴圈印出每一格的資料

while i < len(arr):
    print(arr[i])
    i += 1
  • 資料用陣列儲存,用遞迴的方式印出每一格的資料

# arr = [...]
def recursive(i):
    if i < len(arr):
        print(arr[i])
        recursive(i+1)
  • 資料用 Linked List 儲存,用 while 迴圈印出每一格的資料

  • 有些程式語言例如:Java ,資料用 Linked List 儲存,可以用 for 迴圈印出每一格的資料

  • 資料用 Linked List 儲存,可以用遞迴的方式印出每一格的資料

Last updated