資料結構 二 演算法

2021-10-25 01:16:17 字數 1487 閱讀 8595

演算法:是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作

————————————

輸入輸出

演算法具有零個或多個輸入。演算法至少有乙個或多個輸出

有窮性

在可接受的時間範圍內結束,不會出現出現迴圈

確定性

不會出現二義性

可行性

每一步都能執行有限次數完成

正確性

沒有語法錯誤

對於合法的輸入資料能夠產生滿足要求的輸出結果

對於精心選擇,甚至刁難的測試資料都有滿足要求的輸出結果

可讀性

便於閱讀、理解和交流

健壯性

當輸入資料不合法時,演算法也能做出相關處理

時間效率高和儲存量低

事後統計方法:有很大缺陷,不採用

事前分析估算方法

在計算機程式設計前,依據統計方法對演算法進行估算

乙個程式的執行時間,依賴於演算法的好壞和問題的輸入規模(所謂問題輸入規模是指輸入量的多少)

函式的漸進增長:給定兩個函式f(n)和g(n),如果存在乙個整數n,使得對於所有的n>n,f(n)總是比g(n)大,那麼,我們說f(n)的增長快於g(n)

忽略加法常數。

與最高次項相乘的常數不重要。

最高次項的指數大的,函式隨著n的增長,結果也會增長特別快

定義:在進行演算法分析時,語句總的執行次數t(n)是關於問題規模n的函式,進行分析t(n)隨n的變化並確定t(n)的數量級。演算法的時間愛你複雜度,也就是演算法的時間量度,記作:t(n)=o(f(n))。它隨問題的規模n的增大,演算法執行時間的增長率和f(n)的增長率相同,稱作演算法的漸進時間複雜度,簡稱為時間複雜度。其中f(n)是問題規模n的某個函式

分類

常數階 o(1)

線性階 o(n)

對數階 o(logn)

平方階 o(n²)

————————————

最壞情況是執行時間的一種保證,情況不能再壞了。

平均執行時間是最有意義的,因為他是期望的執行時間

資料結構演算法(二)

單調棧給定乙個長度為 n 的整數數列,輸出每個數左邊第乙個比它小的數,如果不存在則輸出 1。輸入格式 第一行包含整數 n,表示數列長度。第二行包含 n 個整數,表示整數數列。輸出格式 共一行,包含 n 個整數,其中第 i 個數表示第 i 個數的左邊第乙個比它小的數,如果不存在則輸出 1。資料範圍 1...

演算法和資料結構(二) 演算法

接著上篇部落格,這篇部落格我們一起看看傳說中的演算法 早知道這麼簡單,早點看看的話,阿里也就去了,淚奔.面試常見的演算法分為兩種 排序演算法和查詢演算法。1 逐個比較相鄰的兩個元素,將較大的值往後放 2 第一輪比較完最大的元素放陣列最後,第二輪剩下的元素裡最大的元素放陣列倒數第二位.public c...

資料結構 二 演算法緒論

一,演算法定義 算是是對於特定問題的求解步驟的描述,在計算機中表現為有限的指令序列.每條指令序列包含乙個或者多個操作 二,演算法的特徵 1,輸入.演算法有零個或者多個輸入 2,輸出.演算法至少要有乙個輸出 3,確定性.演算法的每乙個步驟都有確定的含義,不會出現二義性 4,可行性.每一步執行有限次數完...