冉伏軍
摘 要:隨著計(jì)算機(jī)在日常生活程度中的普及度越來越高,計(jì)算機(jī)程序的應(yīng)用也變得更加廣泛,而一個(gè)程序中最為重要的部分就是算法的設(shè)計(jì)與應(yīng)用。在本文中,將根據(jù)計(jì)算機(jī)算法作為問題解決過程中作為求解步驟的特點(diǎn),對(duì)其設(shè)計(jì)、效率與結(jié)構(gòu)展開分析,從而使計(jì)算機(jī)算法的應(yīng)用符合其對(duì)應(yīng)程序的具體要求。
關(guān)鍵詞:計(jì)算機(jī)算法;算法設(shè)計(jì);應(yīng)用分析
引 言
作為計(jì)算機(jī)設(shè)計(jì)過程中的重要內(nèi)容,程序的構(gòu)成主要是以對(duì)應(yīng)的算法與數(shù)據(jù)所構(gòu)成的。為此,就要在設(shè)計(jì)的過程中,根據(jù)程序的根本問題以及所在,實(shí)現(xiàn)對(duì)計(jì)算機(jī)算法的正確應(yīng)用,以此來使相應(yīng)程序的整體完整性得到進(jìn)一步提升,并實(shí)現(xiàn)自身應(yīng)用領(lǐng)域的不斷拓寬。
一、計(jì)算機(jī)算法的求解
對(duì)于計(jì)算機(jī)算法來說,其自身作為一個(gè)指令的有限集合,能夠?qū)σ粋€(gè)與多個(gè)操作進(jìn)行表述,并實(shí)現(xiàn)對(duì)系列問題的解決。而作為此過程中的求解步驟,需要在運(yùn)用計(jì)算機(jī)算法的過程中,對(duì)其有窮性、確定性、可行性、輸入、輸出等內(nèi)容進(jìn)行明確,并在執(zhí)行相應(yīng)的步驟后,令其與對(duì)應(yīng)的求解步驟也、能夠在一個(gè)有窮的時(shí)間內(nèi)完成相應(yīng)的運(yùn)算。而在此過程中,其內(nèi)部的每一條語句也都能夠表明不同的含義,而這些含義也可以讓計(jì)算機(jī)與程序代碼的編寫人員進(jìn)行明確,確保其在實(shí)際應(yīng)用的過程中計(jì)算機(jī)算法是能夠進(jìn)行正常運(yùn)行的[1]。
二、計(jì)算機(jī)算法的設(shè)計(jì)
在進(jìn)行程序編寫時(shí),計(jì)算機(jī)算法應(yīng)當(dāng)根據(jù)正確性、可讀性、健壯性、效率與低儲(chǔ)存量需求等設(shè)計(jì)要點(diǎn),進(jìn)行計(jì)算機(jī)算法的設(shè)計(jì)。為此,就要在進(jìn)行算法的編寫過程中,考慮算法的邏輯性與語法正確性的同時(shí),對(duì)其可讀性進(jìn)行提升,從而使算法能夠使人與計(jì)算機(jī)進(jìn)行交流的同時(shí),使相應(yīng)的人員也可以正確的對(duì)算法進(jìn)行閱讀、理解與交流。在進(jìn)行計(jì)算機(jī)算法的編寫時(shí),也要將用戶錯(cuò)誤輸入的情況考慮在內(nèi),確保算法自身的應(yīng)變能力。例如,實(shí)際生活的過程中,在登錄一些軟件或是網(wǎng)頁時(shí),往往需要在窗口界面進(jìn)行用戶名以及密碼的輸入,如果由于在輸入的過程中,沒有正確的進(jìn)行密碼的輸入,就會(huì)彈出一個(gè)相應(yīng)的對(duì)話框進(jìn)行提示,而這便是算法在設(shè)計(jì)與應(yīng)用過程中應(yīng)變能力的一種體現(xiàn)。同時(shí),如果想要使一個(gè)使用程序能夠在市場發(fā)展的過程中,更具有競爭力,就要在進(jìn)行算法設(shè)計(jì)的過程中,確保其效率最大化與內(nèi)存空間的最小化,從而提升程序的運(yùn)行速度,并確保其運(yùn)行效果。
三、計(jì)算機(jī)算法的效率
在進(jìn)行對(duì)計(jì)算機(jī)算法的效率進(jìn)行研究時(shí),可以采取事后統(tǒng)計(jì)法與事前分析法兩種方法,來進(jìn)行分析。事后統(tǒng)計(jì)法在使用的過程中,需要根據(jù)時(shí)間的精確程度,結(jié)合對(duì)運(yùn)行時(shí)間的比對(duì),對(duì)算法的優(yōu)劣性進(jìn)行比較。然而在書籍運(yùn)行的過程中,事后統(tǒng)計(jì)在使用時(shí)具有一個(gè)明顯的缺陷,就是計(jì)算機(jī)本身在運(yùn)行的過程中,便會(huì)由于計(jì)算機(jī)CPU溫度等問題影響計(jì)算機(jī)算法的運(yùn)行速度。而在運(yùn)用事前分析估計(jì)的方法進(jìn)行算法效率的度量時(shí),使需要根據(jù)當(dāng)前算法處理問題的規(guī)模來進(jìn)行確認(rèn)[2]。例如,在進(jìn)行1000個(gè)數(shù)的求和時(shí),應(yīng)根據(jù)處理問題過程中所使用的具體語言來進(jìn)行相關(guān)內(nèi)容的度量。比如,在此過程中使用的語言為計(jì)算機(jī)Java語言,那么其效率便可以得到保證,而且算法自身復(fù)雜程度,也往往會(huì)影響到算法在運(yùn)行過程中的效率。而程序內(nèi)部的循環(huán)越多,那么其在進(jìn)行計(jì)算時(shí)的時(shí)間復(fù)雜度也就越高,運(yùn)行效率也會(huì)隨之降低。
四、計(jì)算機(jī)算法的結(jié)構(gòu)
在研究算法的過程中,首先應(yīng)當(dāng)對(duì)算法自身的結(jié)構(gòu)具有一定的了解。通常在分析算法結(jié)構(gòu)時(shí),需要根據(jù)算法的執(zhí)行情況對(duì)算法的結(jié)構(gòu)進(jìn)行劃分,即順序結(jié)構(gòu)、分支結(jié)果與循環(huán)結(jié)構(gòu),其各自的結(jié)構(gòu)特點(diǎn)分別為:
一,順序結(jié)構(gòu)。順序結(jié)構(gòu)內(nèi)的程序代碼,是按照由前到后的順序進(jìn)行逐步執(zhí)行性的。例如,在有兩個(gè)數(shù)值b和c時(shí),便需要在求值的過程中,根據(jù)不同的變量特點(diǎn)對(duì)其進(jìn)行定義與附加值,并通過對(duì)求和公式的使用來獲取最后的值,而在此過程中只需要按照順序結(jié)構(gòu)進(jìn)行展開與執(zhí)行便能夠獲得最后的結(jié)果。
二,分支結(jié)構(gòu)。分支結(jié)構(gòu)也可以被稱為選擇結(jié)構(gòu),其會(huì)根據(jù)當(dāng)前的情況進(jìn)行具體內(nèi)容的分配,并進(jìn)行相應(yīng)的運(yùn)算。比如,當(dāng)分支結(jié)構(gòu)符合其中的第一個(gè)情況時(shí),便會(huì)直接進(jìn)行算法的執(zhí)行。而如果不符合第一種情況,便會(huì)跳至第二種情況背景下進(jìn)行展開,并以此類推。同時(shí),在所有狀況都不符合時(shí),程序便會(huì)直接結(jié)束并跳出運(yùn)行。
三,循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)類似于數(shù)學(xué)研究中的程序框圖,通常也會(huì)被稱為重復(fù)結(jié)構(gòu),當(dāng)該種結(jié)構(gòu)的算法在運(yùn)行的過程中,如果其內(nèi)部的限定條件符合程序的要求,便會(huì)在該程序內(nèi)進(jìn)行循環(huán)執(zhí)行。而一旦其不符合限定條件,那么不符合該程序的內(nèi)容便會(huì)直接跳出,但不會(huì)直接結(jié)束程序的運(yùn)行。
五、計(jì)算機(jī)算法的應(yīng)用
以一個(gè)學(xué)習(xí)成績管理系統(tǒng)的設(shè)計(jì)為例,在針對(duì)其進(jìn)行算法設(shè)計(jì)的過程中,需要其能夠在正式投入到使用后,可以滿足學(xué)生成績信息的錄入、顯示、查找、修改、添加、刪除、保存與排序。那么在對(duì)其進(jìn)行設(shè)計(jì)的過程中,首先應(yīng)當(dāng)在設(shè)計(jì)的過程中考慮文件的輸入、輸出以及各項(xiàng)內(nèi)容操作的展開與功能選擇,綜合對(duì)這些需求進(jìn)行考慮,確保算法在完成設(shè)計(jì)后,對(duì)以上功能的支持可以得到保障。其次,則要根據(jù)設(shè)計(jì)需求,來進(jìn)行系統(tǒng)整體模塊的概要分析。在該系統(tǒng)的實(shí)際時(shí),可以將其在大體上劃分為信息輸出、查詢、顯示、修改、插入、添加、刪除與排序等不同的模塊。再次,需要在這一個(gè)過程中,結(jié)合詳細(xì)內(nèi)容的設(shè)計(jì),根據(jù)對(duì)應(yīng)的算法結(jié)構(gòu)對(duì)八大主要模塊以及公共模塊中的主函數(shù)、數(shù)據(jù)結(jié)構(gòu)來完成對(duì)算法內(nèi)容的安排與設(shè)計(jì)。最后,則需要對(duì)以完成的計(jì)算機(jī)算法進(jìn)行運(yùn)行測試,實(shí)現(xiàn)對(duì)以完成編寫程序的編譯、連接、運(yùn)行,以根據(jù)前期所完成設(shè)定與需要實(shí)現(xiàn)的功能展開測試,而如果完成相應(yīng)的測試,則表明算法的設(shè)計(jì)符合程序的使用要求,程序能夠完成對(duì)成績的輸出、查詢、顯示、修改、插入、添加、刪除與排序。
結(jié) 論
綜上所述,計(jì)算機(jī)的算法在具體應(yīng)用的過程中,通常會(huì)涉及到算法的求解、設(shè)計(jì)、效率與結(jié)構(gòu)等方面的問題。并且需要在設(shè)計(jì)的過程中,結(jié)合計(jì)算機(jī)算法以及不同計(jì)算機(jī)語言的特點(diǎn),采取針對(duì)性的方法進(jìn)行展開,從而實(shí)現(xiàn)對(duì)計(jì)算機(jī)算法的合理應(yīng)用,使其整體效用可以得到最大化發(fā)揮。
參考文獻(xiàn)
[1] 高祎.數(shù)學(xué)算法在計(jì)算機(jī)編程優(yōu)化中的應(yīng)用分析[J].科技風(fēng),2019(04):48.
[2] 王家興.計(jì)算機(jī)算法與應(yīng)用[J].電子世界,2018(02):73+75.