袁溪 西安文理學院
計算機在工作的過程當中,本質上是算法的運行,這些算法由人所編造,算法加上數據結構組成程序,所以在進行實際問題求解時,可能會出現若干個現成的算法,必須找到最優算法,在此過程中,用戶會面臨著一個算法分析的問題。
算法的復雜性包括時間的復雜性和空間的復雜性,時間的復雜性是指算法在運算的過程中所需要花費的時間較多,空間的復雜性則是指算法所需要占用的存儲空間的大小。在運行效率上,主要受到工作量與空間兩方面資源的制約,算法的復雜性導致運算工作的難度加大,所以必須降低算法的復雜性。采用估算法的方式,對平均狀況和綜合狀況進行分析,衡量比較出最好的算法。
錯誤的傳播和積累是否受到限制,是衡量算法穩定性的重要標準,在實際的數據處理當中,由于近似值都不算準確,所以,計算可能會受到有效位數的限制,在確定算法時,必須考慮算法在計算過程中的每一個步驟和每一過程中會產生的運行誤差,保證計算的結果有實際的意義。
對于實際而具體的問題,通過對統一問題的分析,判斷出這個問題是否存在最優解法,通常是采用這個算法的平均性狀進行分析。如果算法當中存在著一些較為復雜的問題,需要尋找最優算法是比較困難的,所以需要對算法的平均性狀和最壞狀況進行統一的分析。除此以外,需要考慮算法的自適應問題、實現約束問題、精巧性與簡明性問題、正確性證明的問題等進行一系列的分析。
通過對算法復雜性的分析,對評價標準進行判定,并進行一個更為全面透徹的了解,我們可以通過舉例說明的方式,分析一下平均性狀與最壞情況下時間的復雜性。舉例說明,具有n項的線性表的順序搜索算法。
S1:1→ r
S2:WHILE r≤n and L(r) ≠V DO r+1→r END
S3:IF r>n THEN 0→r
在這個算法當中,r是結果值,從整個數組的第一個元素,與V進行逐一的比較,若存在數字與V相等則認為整個算法,操作結果就是r,若找不到與v相同的值,則r等于0。
從上述的例子可以得出一個沒有順序的無序表查找只能通過順序搜索查找的方法,所以為了提高查找的效率,可以先將無序的線性表用某種算法改變成為有序的線性表,以便于更好的查找,即使是看上去比較簡單的算法和實例,在經過復雜的空間和時間的估算,也不是一件簡單的事,所以,用戶應用復雜性算法進行估算,從而確定該算法是否符合示例估算的需要。
另外,在復雜形勢的實例算法下,可以通過一些粗略的數量級的分析對抽象描述算法進行復雜性估算,例如某個算法的復雜性,隨著n的數目增大而不斷增加,其增長的速度是不是會比另一個n次多項式的增長更快,這些都需要進行更深一步的研究,以期取得更好的效益,如果算法內部存在著多項組合式的運算,則這個算法可以被認定為多項式類復雜性。
在所舉的例子當中,較多的考慮了時間的復雜性,在算法空間復雜性計算的過程中,如果對該算法所占用的儲存空間、程序所占用的空間、輸入的初始數據所占用的空間以及算法執行過程中所需要的附加空間進行單元轉換和數據存儲,需要占用大量的空間,在解決某個具體問題時,需要對所占用的時間空間做出折中的選擇,允許使用的空間越大,計劃所計算所花費的時間可以減少,以空間換取時間,如果用反向思考法,則允許時間換空間,限制存儲空間的大小,可能會花更多的步驟與時間去進行數據處理,這種轉化的方式對于降低算法的復雜性也具有十分重要的意義。
總之,將算法的空間復雜性和時間復雜性進行深入透徹的分析,通過估算法選擇最佳運算方案。首先要保證算法本身是正確的,要使得合理的輸入與不合理的輸入,總能得到預期的輸出,明確算法的步驟,使每一步都能夠被計算機所理解和執行,使算法在運行過程中高效、準確、無誤,才能選取更好的方法來進行計算機上機處理,對我們生活當中的各種問題進行及時的解決。
[1]楊勁秋.智能優化算法評價模型研究[D].導師:楊建剛.浙江大學,2017.
[2]李愛群,張廉潔.基于中介真值程度的成績評價算法設計[J].計算機技術與發展,2017,(07):164-167.
[3]諶昌強,袁荷偉.計算機算法設計及其評價標準[J].信陽農業高等專科學校學報,2015,(04):97-99.
[4]龔海里.故障樹計算機輔助分析優化算法研究與應用[D].導師:李劍中.大連理工大學,2014.