演算法和演算法複雜度

2021-08-29 14:18:22 字數 834 閱讀 1484

演算法(algorithm)是指解題方****而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。如果乙個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。乙個演算法的優劣可以用空間複雜度與時間複雜度來衡量。

有窮性:指演算法必須能在執行有限個步驟之後終止;

確切性:演算法的每一步驟必須有確切的定義;

輸入項:乙個演算法有0個或多個輸入,以刻畫運算物件的初始情況,所謂0個輸入是指演算法本身定出了初始條件;

輸出項:乙個演算法有乙個或多個輸出,以反映對輸入資料加工後的結果。沒有輸出的演算法是毫無意義的;

可行性:演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成(也稱之為有效性)。

當問題的規模增大時,他研究問題的處理時間是如何增加的。

為了比較演算法,首先它定義幾個客觀評價指標。

理想的解決方案:假定用乙個函式f(n)來表示乙個演算法的執行時間,該函式的輸入引數就是問題的規模n。然後比較這些不同函式對應的執行時間。這種方法與機器時間,程式設計風格等無關。

增長率:隨著輸入規模的增加,演算法執行時間增加的速度,它是輸入規模的函式。

演算法分析的三種型別:

最壞情況

最好情況

平均情況

大o表示法

大o表示法給出了函式f(n)的嚴格上限。

ω表示法

ω表示法為給定的演算法定義了嚴格的下限。

表示法表示法給定演算法的時間增長率的上界和下界。

演算法的複雜度 演算法的時間複雜度和空間複雜度

在一次筆試題目中,發現了自己對於演算法的時間複雜度問題上並沒有完全清晰這個概念和計算方法,故上網尋找到比較好的詳細介紹來學習。演算法的時間複雜度和空間複雜度合稱為演算法的複雜度。1.時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也...

演算法複雜度 時間複雜度和空間複雜度

1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數...

演算法複雜度 時間複雜度和空間複雜度

演算法複雜度 時間複雜度和空間複雜度 關鍵字 演算法複雜度 時間複雜度 空間複雜度 1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時 間多,哪個演算法花費的時間少就可以...