摘 要:計(jì)算機(jī)軟件的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),主要負(fù)責(zé)講解計(jì)算機(jī)內(nèi)信息的寄存方式、集合和整理,通常是與算法密不可分的。算法是能夠被計(jì)算機(jī)分辨和識(shí)別的指令,指令的內(nèi)容就是通過計(jì)算機(jī)軟件基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)來進(jìn)行寄存的信息。數(shù)據(jù)結(jié)構(gòu)的算法分析,可以使計(jì)算機(jī)處理比較復(fù)雜的難題,提高了效率,本文對(duì)計(jì)算機(jī)基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)的算法進(jìn)行了分析。
關(guān)鍵詞:計(jì)算機(jī)軟件;基礎(chǔ)數(shù)據(jù)結(jié)構(gòu);算法分析;復(fù)雜度
1 算法的概述
1.1 算法兩要素
算法主要包括兩部分:信息的處理操作和信息處理方式的操作結(jié)構(gòu),對(duì)信息的處理操作一般包括邏輯符號(hào)、數(shù)學(xué)計(jì)算、信息傳遞和信息對(duì)比,操作結(jié)構(gòu)可以指引指令有序進(jìn)行,通常用流程圖來描述。
1.2 算法的主要特征
有限指令的主要部分就是算法,有限指令能夠明確處理問題的步驟。面對(duì)問題,算法能夠?qū)Ω鞣N定值指令進(jìn)行預(yù)算處理,通過運(yùn)算傳達(dá)最后的計(jì)算結(jié)果。算法的特點(diǎn)主要為:指令的數(shù)量必須有限;指令不能超出計(jì)算機(jī)的能力范圍;被處理的對(duì)象不受指令影響,對(duì)象數(shù)量不影響指令,必須要有至少一個(gè)傳遞末端。
1.3 算法表示方法
目前編譯算法一般都用符號(hào)和文字來進(jìn)行,主要包括程序圖、C語言、PAD圖,一般性文字等。C語言和一般性文字能夠具體詳細(xì)的描述算法,其他方法描述算法是大致內(nèi)容并進(jìn)行作圖,更加直觀的表達(dá),便于學(xué)習(xí)理解。
1.4 常用的算法
常用的算法主要包括枚舉法、迭代法、遞推和遞歸法。枚舉法內(nèi)容是指通過信息特點(diǎn)對(duì)運(yùn)行結(jié)果的可能區(qū)域進(jìn)行估計(jì),然后利用一些方法手段檢查各個(gè)結(jié)果,直到所有結(jié)果都符合。在驗(yàn)證過程中,驗(yàn)證對(duì)象如果滿足算法要求,這個(gè)驗(yàn)證對(duì)象就是最終計(jì)算機(jī)傳遞的結(jié)果,如果沒有達(dá)到要求的對(duì)象,那么算法就無解。迭代法是一種較為粗略的方法,可以把麻煩復(fù)雜的問題轉(zhuǎn)化為較為簡(jiǎn)單的迭代式子,通過循環(huán)這個(gè)步驟,達(dá)到由繁化簡(jiǎn)并最終得出答案的目的,該法適合非數(shù)值類問題的計(jì)算。遞推法和遞歸法是主要的算法制定編寫法,都通過運(yùn)用特殊公式逐項(xiàng)推導(dǎo)而來的。
2 算法設(shè)計(jì)要求
算法像語言一樣,是計(jì)算機(jī)和人類溝通時(shí)的語言,通過算法,人們不僅可以跟計(jì)算機(jī)進(jìn)行交流,還可以按照指令執(zhí)行任務(wù)。因此所有的指令必須要符合一定的行為準(zhǔn)則,算法的設(shè)計(jì)要求主要包括以下幾點(diǎn):
2.1 具有正確性
設(shè)計(jì)者編譯指令時(shí)必須要按照算法的規(guī)則來進(jìn)行,從而保證人和計(jì)算機(jī)正確的交流,保證計(jì)算機(jī)執(zhí)行好任務(wù)。正確性中最重要的就是避免語法錯(cuò)誤的出現(xiàn),從而能夠?yàn)檎_答案的得出做好準(zhǔn)備。
2.2 具有可讀性
算法具有可持續(xù)性,是指算法總體思路容易讓人理解,是想一下,一個(gè)非?;靵y的算法,即使再聰明的人也很難明白算法原理的,更不用說得出計(jì)算機(jī)答案。
2.3 具有穩(wěn)定性
就像機(jī)械設(shè)備似的,如果工作狀態(tài)不穩(wěn)定,那么就會(huì)很容易出現(xiàn)難懂奇怪的問題,算法如果不夠穩(wěn)定,計(jì)算機(jī)在正常運(yùn)行的時(shí)候,也會(huì)很容易出現(xiàn)錯(cuò)誤。經(jīng)常出現(xiàn)的錯(cuò)誤就是亂碼,就會(huì)讓人感覺像是算法存在嚴(yán)重問題。
2.4 具有高效低耗的性能
計(jì)算機(jī)性能的好壞取決于內(nèi)部的器件好壞,算法也是這樣的。好算法可以用最低能耗最短時(shí)間來得出答案,計(jì)算機(jī)內(nèi)部的工作原理可以決定這些因素,其中最主要的就是存儲(chǔ)大小和運(yùn)算速度的聯(lián)系。
3 算法復(fù)雜度的分析
算法復(fù)雜度決定了一個(gè)算法執(zhí)行并得出結(jié)果需要的總時(shí)間,設(shè)計(jì)者通常是根據(jù)算法復(fù)雜度來判斷對(duì)算法的總效率來進(jìn)行判斷的,這是因?yàn)闀r(shí)間的消耗和算法需要的內(nèi)存情況是直接聯(lián)系掛鉤的。評(píng)判者主要是依據(jù)運(yùn)行的時(shí)長以及內(nèi)存的消耗來進(jìn)行判斷的。下面就簡(jiǎn)要介紹一下運(yùn)行時(shí)長以及內(nèi)存消耗:
3.1 運(yùn)行的時(shí)長
通常來講設(shè)計(jì)者不是依據(jù)算法的總運(yùn)行時(shí)間來衡量時(shí)間長短的,這是因?yàn)橛?jì)算機(jī)仍然是算法正常運(yùn)行的載體,計(jì)算機(jī)的運(yùn)行速度跟許多因素有關(guān),例如計(jì)算機(jī)的運(yùn)行環(huán)境、計(jì)算機(jī)內(nèi)部使用損耗等。因此,同一種算法在不同的計(jì)算機(jī)運(yùn)行載體上運(yùn)行的效果也是有很大差別的。一般來說,計(jì)算機(jī)運(yùn)行時(shí)長的大小不是衡量算法效率的一種標(biāo)準(zhǔn),而是判斷算法運(yùn)行時(shí)間損耗的一項(xiàng)指標(biāo),能夠在一定程度上評(píng)判算法運(yùn)行的好壞。
3.2 內(nèi)存的消耗
計(jì)算機(jī)運(yùn)行算法,會(huì)暫時(shí)占用相關(guān)的空間,被占用的空間大小尺度就是常說的內(nèi)存消耗,內(nèi)存消耗與相關(guān)的函數(shù)緊密聯(lián)系。內(nèi)存消耗主要內(nèi)容是傳入和傳出信息占用的內(nèi)存、算法在運(yùn)行過程中暫時(shí)占用的內(nèi)存等。傳入和傳出信息占用的內(nèi)存跟需要解決處理的問題是相關(guān)的,不會(huì)因算法變化而變化;算法運(yùn)行中暫時(shí)占用的內(nèi)存大小是由算法來決定的,不同的算法需要不同的內(nèi)存,因此,比較好的算法需要的內(nèi)存也比較少,這也是內(nèi)存消耗成為評(píng)判算法好壞的又一個(gè)非常重要的標(biāo)準(zhǔn)。
[參考文獻(xiàn)]
[1]鄧龍.計(jì)算機(jī)軟件基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)算法[J].信息與電腦(理論版),2012(6).
[2]李毅波.數(shù)據(jù)結(jié)構(gòu)與算法學(xué)習(xí)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].中南大學(xué),2012.
[3]曹林,繆旻,樊文波.計(jì)算機(jī)軟件基礎(chǔ)課程設(shè)計(jì)的探索與實(shí)踐[J].中國科教創(chuàng)新導(dǎo)刊,2013(4).
[4]王曉蓉,陳笑蓉,陳梅.基于計(jì)算機(jī)軟件開放實(shí)驗(yàn)平臺(tái)的《數(shù)據(jù)結(jié)構(gòu)》動(dòng)態(tài)演示設(shè)計(jì)[J].貴州大學(xué)學(xué)報(bào)(自然科學(xué)版),2011(3).