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