1. 程式人生 > >圖解演算法學習筆記(一): 演算法簡介

圖解演算法學習筆記(一): 演算法簡介

本章內容:

  •     編寫第一種查詢演算法——二分查詢。
  •     學習如何談論演算法的執行時間——大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表示法表示。