潛江市醫(yī)療保障局 湖北 潛江 433100
計(jì)算機(jī)借助運(yùn)行程序解決相關(guān)問題,而所運(yùn)行的程序主要由兩部分構(gòu)成,分別為數(shù)據(jù)結(jié)構(gòu)以及算法。后者作為一組程序的核心,通常是用做解決做什么以及如何做,這樣才能讓程序得到有效執(zhí)行。目前,主要通過三種方式來表示算法,分別為偽代碼、文字以及流程圖,然而計(jì)算機(jī)無法直接識(shí)別算法,所以必須把算法轉(zhuǎn)變成相應(yīng)的程序語言,這樣才能最大程度利用算法的價(jià)值,這說明算法設(shè)計(jì)以及評(píng)價(jià)極具重要意義。
1.1 最優(yōu)化問題 算法的價(jià)值在于借助運(yùn)算有效解決特定或者某一種問題。然而,就確定問題而言,通常會(huì)同時(shí)存在諸多算法設(shè)計(jì)方法,另外其所占有的時(shí)間或者資源明顯相應(yīng)區(qū)別。那么,站在技術(shù)人員的角度,應(yīng)對(duì)對(duì)比分析相關(guān)設(shè)計(jì)方法,進(jìn)而篩選最優(yōu)方案。以處理算法設(shè)計(jì)最優(yōu)化問題為例,技術(shù)人員應(yīng)該充分考慮具體的篩選規(guī)范,例如設(shè)計(jì)成本以及運(yùn)算速度等,需要注意的是,此類篩選規(guī)范既可以為組合或者單一的,具體采取何種形式需要結(jié)合實(shí)際狀況加以明確,在處理內(nèi)容極為復(fù)雜以及難度較高的問題時(shí),高度精確的設(shè)計(jì)方案往往會(huì)花費(fèi)巨額策劃你根本,因此處理最優(yōu)化問題,是每一位計(jì)算機(jī)人員需要高度關(guān)注的問題之一。
1.2 復(fù)雜性問題 通常情況下,算法設(shè)計(jì)復(fù)雜性表現(xiàn)在空間以及時(shí)間上。具體而言,在面臨難度較高的問題時(shí),涉及到大量的程序語句,這給計(jì)算機(jī)算法運(yùn)行空間提出較高要求,一旦計(jì)算機(jī)無法有效匹配相應(yīng)空間,會(huì)在一定程度上加大算法設(shè)計(jì)的整體難度[1]。另外,無論何種形式的算法,其執(zhí)行環(huán)節(jié)到結(jié)束環(huán)節(jié)會(huì)持續(xù)一定時(shí)間,有效平衡算法運(yùn)行時(shí)間以及工作效率已經(jīng)成為算法設(shè)計(jì)必須高度重視的問題。此外,計(jì)算機(jī)算法的運(yùn)用還應(yīng)該分析在單位時(shí)間內(nèi)能夠完成何種比例的工作量,以及相關(guān)問題是否得到徹底解決。因此技術(shù)人員需要有針對(duì)性的把算法的空間、時(shí)間復(fù)雜度。
1.3 可靠性問題 在計(jì)算機(jī)實(shí)際執(zhí)行程序的過程中,其自身無法準(zhǔn)確判斷程序具體數(shù)值精確性,這會(huì)引發(fā)初始值誤差。比如,如果受估算錯(cuò)誤的影響,形成的實(shí)際值和設(shè)定值具有明顯誤差的初始值,未被計(jì)算機(jī)系統(tǒng)及時(shí)檢測(cè)并篩選出來,最終滲透之了全部程序之中。就程序運(yùn)行而言,計(jì)算機(jī)是否可以控制存在存在誤差的程序片段,也應(yīng)該是算法設(shè)計(jì)需要重點(diǎn)考慮的問題。不同類型的算法控制相關(guān)運(yùn)算步驟的程度有一定差異,因此在設(shè)計(jì)算法過程中,應(yīng)該結(jié)合程序運(yùn)算的具體要求,首先應(yīng)該應(yīng)用控制力具有明顯優(yōu)勢(shì)的方法,這是增強(qiáng)整個(gè)程序穩(wěn)定性的重要家住。
從前文可知,計(jì)算機(jī)算法設(shè)計(jì)必須要把握可靠性以及最優(yōu)性,這說明在評(píng)價(jià)算法時(shí)既需要研究其結(jié)果,也要考慮算法的資源占用情況以及持續(xù)時(shí)間,本文將借助案例來研究評(píng)價(jià)標(biāo)準(zhǔn)。
2.1 算法案例 利用歐幾里得算法,計(jì)算任意兩個(gè)正整數(shù)的最大公約數(shù)。利用C語言,其具體的算法設(shè)計(jì)詳細(xì)情況如下:
利用以上算法確定任意兩個(gè)素?cái)?shù)最大公約數(shù),應(yīng)確定相應(yīng)的兩個(gè)素?cái)?shù),即M與N,M與N不相同,同時(shí)也要選取參數(shù)y,讓條件得以成立,即Gcd(y,(M-1)(N-1))=1。基于互素條件,確定額外的參數(shù)m,把ym=1(mod(M-1)(N-1))的參量視作后續(xù)運(yùn)算的一個(gè)重要環(huán)節(jié),結(jié)束該環(huán)節(jié)后,可得出關(guān)系式n=M*N,而滿足此條件的所有M、N值,形成了最終集合。從所有滿足的條件的數(shù)值中,選擇其中的最大值,就是最大公約數(shù)。
2.2 算法評(píng)價(jià) 在無序表中實(shí)施查詢與操作,按照?qǐng)?zhí)行順序基于檢索,對(duì)于從屬于查找類行的算法而言,其擁有平均長(zhǎng)度不超過(n+1)/2的約束條件,在二分法中,其運(yùn)算長(zhǎng)度是[log2n]+1。那么,基于實(shí)際應(yīng)用的視角,如果對(duì)查詢效率具有嚴(yán)格要求,應(yīng)借助無序性算法特點(diǎn)來對(duì)有序性線性特征加以評(píng)價(jià)。所以,就實(shí)際案例而言,應(yīng)該通過較短的運(yùn)算時(shí)間來逐步化解其負(fù)責(zé)程度,而借助平均運(yùn)算效果來評(píng)價(jià)其實(shí)際占用的存儲(chǔ)空間。設(shè)計(jì)計(jì)算機(jī)算法已經(jīng)出現(xiàn)了相應(yīng)的經(jīng)典操作,例如最大期 望(EM)算法、A*搜尋算法、歐幾里得算法以及二分取中查找算法等,以上算法都已經(jīng)廣泛應(yīng)用于相關(guān)實(shí)踐工作中,所以將其視作對(duì)比參考。把設(shè)計(jì)算法和以往的經(jīng)典算法予以對(duì)比,把計(jì)算機(jī)真實(shí)運(yùn)行效率視作評(píng)估條件,以此來證明算法是否可以消除復(fù)雜性以及獲得最優(yōu)方案的計(jì)算能力[2]。在最開始分析算法是否導(dǎo)致了相應(yīng)的復(fù)雜性,需應(yīng)用大致估算數(shù)量評(píng)估模式,將實(shí)際運(yùn)算效率的對(duì)比分析視作評(píng)價(jià)指標(biāo),應(yīng)對(duì)其運(yùn)算效果加以分析和判斷。另外,還應(yīng)借助相互比較的方式,對(duì)計(jì)算機(jī)算法實(shí)施模糊定量,同時(shí)由此篩選抽象描述方案,通過這種方式來分析算法的復(fù)雜性程度。
綜上所述,可以把計(jì)算機(jī)算法理解成把輸入?yún)⑴c,基于相應(yīng)的規(guī)范以及條件,轉(zhuǎn)變成輸出的全部過程。由于計(jì)算機(jī)實(shí)現(xiàn)的功能具有差異,因此應(yīng)該借助對(duì)應(yīng)的算法,這樣才可以獲得更高的運(yùn)算效率,并且減少對(duì)資源的占用情況。對(duì)于技術(shù)人員而言,需要把握可靠性以及最優(yōu)性原則,并把其應(yīng)用在設(shè)計(jì)以及評(píng)價(jià)的各個(gè)環(huán)節(jié)。此外,就已設(shè)計(jì)好的算法而言,應(yīng)該考慮程序語言予以充分驗(yàn)證,不斷對(duì)算法展開優(yōu)化,這樣才能增強(qiáng)設(shè)計(jì)方案的合理化程度。