圖解演算法學習筆記(一): 演算法簡介
阿新 • • 發佈:2018-12-16
本章內容:
- 編寫第一種查詢演算法——二分查詢。
- 學習如何談論演算法的執行時間——大O表示法。
1) 演算法是一組完成任務的指令,任何程式碼片段都可視為演算法。
2)二分查詢:一種查詢演算法,其輸入是一個有序的元素列表。 Python實現二分查詢程式碼:
#二分查詢演算法函式 def binary_search(list, item): low = 0 high = len(list) - 1 while low <= high: mid = (low + high) / 2 guess = list[mid] if guess == item: return mid if guess > item: high = mid -1 else: low = mid +1 return None
3)大O表示法:通過比較運算元,指出了演算法執行時間的增速;但指出的是最糟的情形,該演算法執行的最大時間。
常見演算法執行時間: O(logn),也叫對數時間,二分查詢演算法; O(n),線性時間,簡單查詢演算法; O(n*logn),快速排序演算法; O(n^2),選擇排序演算法; O(n!),旅行商解決方案;
4)小結: 二分查詢的速度比簡單查詢快得多。 O(logn)比O(n)快。需要搜尋的元素越多,前者比後者就快得越多。 演算法執行時間並不以秒為單位,演算法執行時間是從其增速的角度度量的。 演算法執行時間用大O表示法表示。