摘要:
重要操作的時間復雜度: (1)訪問 O(N) (2)搜索 O(N) (3)插入 O(1) (4)刪除 O(1) 注:訪問和搜索最壞都需要遍歷整個隊列,所以時間復雜度是O(N);插入和刪除操作通過入隊和出隊實現,隊列通常由鏈表表示,所以時間復雜度是O(1)。 常用操作: 創建隊列 添加元素 獲取即將出
閱讀全文
摘要:
示意圖: 重要操作的時間復雜度: (1)訪問 O(1) (2)搜索 O(N) (3)插入 O(1) (4)刪除 O(1) 注:訪問和刪除都是對棧頂元素,插入也是從棧頂進行元素插入,所以時間復雜度是O(1);搜索需要從棧頂開始遍歷,所以時間復雜度是O(N)。 常用操作: 創建棧 添加元素 查看棧頂元素
閱讀全文
摘要:
單鏈表示意圖 重要操作的時間復雜度: (1)訪問 O(N) (2)搜索 O(N) (3)插入 O(1) (4)刪除 O(1) 注:根據鏈表是由next指針逐一串連無法直接訪問各個元素的特點,訪問和搜索最壞情況都要遍歷整個鏈表,所以時間復雜度為O(N);插入和刪除只需要修改指針的指向就能完成,無需進行
閱讀全文
摘要:
數組:在連續的內存空間中,存儲一種相同類型的元素。 區分: (1)元素和索引 索引是元素的下標,在數組中的相對位置。 元素 1 2 3 索引 0 1 2 (2)數組訪問和數組搜索 訪問a[1]是2,搜索2得到索引1。 重要操作的時間復雜度: (1)訪問 O(1) (2)搜索 O(N) (3)插入 O
閱讀全文
摘要:
時間復雜度:算法的執行效率、算法的執行時間和輸入值的關系 需要關注的是算法中的for循環和while循環,如均沒有,時間復雜度為O(1)。 下面是常見時間復雜度的簡單案例: O(1): def O1(num): i = num j = num * 2 return i + j O(logN): de
閱讀全文