複雜度 :粗略衡量演算法好壞的刻度尺。(工具)
兩個維度 : 快慢 時間複雜度
使用空間的情況 空間複雜度
之間利用允許時間衡量不現實。測試環境多變,不好控制變數。
前提:如果指定的cpu的情況下,單位時間內執行的基本指令的個數是固定的。
如果乙個演算法需要的指令比另乙個演算法需要的個數小,就可以推算a執行的更快。
前提:演算法計算的快慢和輸入資料的規模是有關係的
粗略的計算演算法的快慢
n:資料的規模
f(n):n的資料規模的情況下,需要大概指令的個數
引入大 o 逐進表示法。
o(f(n))
1)只保留最高次項
2)保留的最高次項係數化為1
演算法的快慢還和最好的情況,平均的情況,最壞的情況
一般優先關注最壞的情況,其次是平均的情況,最好情況關注比較少。
初識資料結構
本人是乙個大三的學生,最近在看資料結構,也是第一次寫自己的部落格,有錯勿噴。可能在大學的學生都覺得資料結構是比較難的一門課程,也有許多難掌握的知識。但是在自己多次實踐過後就感覺沒有那麼困難,還是很容易掌握的。在學習過後我覺得資料結構的順序儲存就相當於陣列,陣列大家應該都不陌生吧。接下來我就給大家看一...
初識資料結構
資料結構 是將現實中大量而複雜的問題以特定的資料型別以及特定的儲存結構儲存到記憶體中,以及在此基礎上為實現某個功能而執行的相應操作 演算法 一 線性結構 連續儲存 陣列 離散儲存 鍊錶 線性結構常見應用 棧 資料結構中沒有堆,棧即堆疊 佇列 二 非線性結構 樹 圖三 查詢與排序 折半查詢 快排 冒泡...
初識資料結構
演算法是對解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作。演算法的特性 零個或多個輸入 乙個或多個輸出 有窮性 有限步驟 確定性 每一步都有確定的含義,不會出現二義性 可行性 每一步都必須可行,即每一部都能通過執行有限次數完成 演算法設計的要求 正確性 即...