資料結構和演算法 談談演算法

2021-09-17 23:19:37 字數 706 閱讀 4531

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

演算法具有零個或多個輸入。

儘管對於絕大多數演算法來說,輸入引數都是必要的

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

演算法是一定要輸出的,輸出的形式可以是列印形式輸出,也可以是返回乙個值或多個值等。

指演算法在執行有限的步驟之後,自動結束而不會出現無限迴圈,並且每乙個步驟在可接受的時間內完成。

演算法的每乙個步驟都具有確定的含義,不會出現二義性。

演算法在一定條件下,只有一條執行路徑,相同的輸入只能有唯一的輸出結果。

演算法的每個步驟都應該被精確定義而無歧義。

演算法的每一步都必須是可行的,也就是說,每一步都能夠通過執行有限次數完成。

演算法的正確性是指演算法至少應該具有輸入、輸出和加工處理無歧義性、能正確反映問題的需求、能夠得到問題的正確答案。

大體分為以下四個層次:

演算法程式沒有語法錯誤。

演算法程式對於合法輸入能夠產生滿足要求的輸出。

演算法程式對於非法輸入能夠產生滿足規格的說明。

演算法程式對於故意刁難的測試輸入都有滿足要求的輸出結果。

演算法設計另一目的是為了便於閱讀、理解和交流。

寫**的目的,一方面是為了讓計算機執行,但還有乙個重要的目的是為了便於他人閱讀和自己日後閱讀修改。

當輸入資料不合法時,演算法也能做出相關處理,而不是產生異常、崩潰或莫名其妙的結果。

資料結構和演算法 談談演算法

演算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作。演算法具有零個或多個輸入。儘管對於絕大多數演算法來說,輸入引數都是必要的 演算法至少有乙個或多個輸出。演算法是一定要輸出的,輸出的形式可以是列印形式輸出,也可以是返回乙個值或多個值等。指演算法在執行有...

資料結構和演算法

判斷乙個演算法的效率時,函式中的常數和其它次要項常常可以忽略,而更應該關注主項 最高項 的階數。演算法時間複雜度的定義 在進行演算法分析時,語句中的執行次數t n 是關於問題規模n的函式,進而分析t n 隨n的變化情況並確定t n 的數量級。演算法的時間複雜度,也就是演算法的時間量度,記作 t n ...

資料結構和演算法

程式是什麼?好多書上都寫著 程式 資料結構 演算法。可是怎麼去理解呢?好多程式設計人員對資料結構和演算法說不上熟悉,因為在他們所從事的工作中很少用到這些知識點。但並不表示他們不重要。還有一些人是這樣的想法 大公司才會注重這些知識點,小公司可能就不注重了。寫這篇文章之前我也是持這種想法的。但是,此時此...