在刷面試題中的演算法題經常出現時間複雜度o(n),空間複雜度o(1)很多時候不知道是什麼意思
空間複雜度與時間複雜度是資料結構的複雜度,在現在儲存裝置越來越便宜的時代,時間複雜度是決定程式執行速度的重要因素
演算法時間複雜度是衡量計算效能的指標,反映了程式執行時間隨著輸入規模的增長而增長的量級,很大程度的反映出演算法效能的好壞,這個量級用大寫的o加()表示
從好到壞常用演算法複雜度排序如下
最低複雜程度,使用時間或使用空間與輸入資料大小沒有關係,無論輸入資料多大,使用時間或使用空間不變
雜湊演算法就是典型的常熟級演算法
使用時間或空間隨著輸入資料增大,複雜度增大為log n倍,log n倍是n為2的幾次方的上標值
二分查詢就是對數級演算法
輸入資料增大幾倍,時間或空間增大幾倍
大部分遍歷就是線性級演算法
使用時間或空間隨著輸入資料增大,複雜度增大為nlog n倍,nlog n倍是n為2的幾次方的上標值乘以n
二分查詢就是對數級演算法
輸入資料增大幾倍,時間或空間增大幾的平方倍
氣泡排序就是平方級演算法,不過複雜度是從o(n)->o(n²),氣泡排序在資料錯位數量很小時適用
輸入資料增大幾倍,時間或空間增大幾的立方倍
輸入資料增大幾倍,時間或空間增大2的幾的次方倍
如有錯誤請各位大牛指出,感激不盡
大O表示法 時間複雜度
引入原因 用另乙個 通常更簡單的 函式來描述乙個函式數量級的漸近上界。定義 如果乙個問題的規模是n,解這一問題的某一演算法所需要的時間為t n 它是n的某一函式。t n 稱為這一演算法的 時間複雜度 某個演算法的複雜度到達了這個問題複雜度的下界,那就稱這樣的演算法是最佳演算法 決定演算法複雜度的是執...
大O表示法和時間複雜度
學資料結構和演算法的目的 實現程式的高速執行,那麼必然要了解複雜度。複雜度分為兩個維度 時間 空間。在開發過程中,我們希望時間和記憶體消耗都越少越好,但很多時候無法做到兼顧,需要在時間和空間之間做出取捨已達到最佳狀態。對複雜度的計算一般採用事前分析估算的方法,即大o表示法。接下來讓我們進入複雜度的學...
大O演算法複雜度表示
序言 演算法的時間複雜度和空間複雜度都是用 大o表示法 來表示的。其中o是個常量。常見的排序演算法的時間複雜度 氣泡排序 插入排序 希爾排序 選擇排序的時間複雜度是o n 2 快速排序的時間複雜度是o n log n 空間複雜度 氣泡排序 插入排序 希爾排序 選擇排序的空間複雜度是o 1 快速排序的...