1. 程式人生 > >數據結構之算法概念

數據結構之算法概念

數據結構 com 轉換 根據 多項式 png .com 最終 分享圖片

數據結構:就好比一個大型圖書館,如何在書架上擺放圖書,要考慮兩個操作:

1.新書怎麽插入
2.怎麽找到指定的某本書

解決問題方法的效率,跟數據結構的組織方式有關,跟空間的利用率有關,跟算法的巧妙程度有關

所以什麽是數據結構:
數據對象在計算機中的組織方式
1.邏輯結構
2.物理存儲結構
數據對象必定與一系列加在其上的操作相關聯
完成這些操作所用的方法就是算法

一個算法的好壞,主要看兩方面,
時間復雜度:根據算法寫成的程序在執行時耗費時間的長度,這個長度往往和輸入數據的規模有關
空間復雜度:根據算法寫成的程序在執行時占用存儲單元的長度,這個長度往往也和輸入數據的規模有關
技術分享圖片
不對算法復雜度做精確分析,大致知道增長趨勢即可,所以有了復雜度的漸進表示法,O(f(n))表示上界,一般取能找到的最小的上界,最貼近真實情況的那個,因為上界有無窮多個

技術分享圖片
技術分享圖片

一個算法的復雜度為n的平方時,下意識考慮能不能轉換成n*logn

技術分享圖片
兩個算法相加,時間取兩者最大的那一個
兩個算法相乘,則最終的算法復雜度也是兩個相乘(取兩個上界的乘積)
多項式展開就是依據這個原則,復雜度取最大項的那個

數據結構之算法概念