摘要:算法在計算機學(xué)習(xí)中很常見,在生活中也很常見,只有描述清楚,表達清晰才能更好地為人服務(wù),這才是根本目的。有算法支撐的計算機,才能更好地為您服務(wù)。計算機的神奇主要歸功于算法及實現(xiàn)算法的計算機程序。
關(guān)鍵字:算法 語言描述 循環(huán)體
能準(zhǔn)確完整的描述解題方案,是一種指令可以解決問題,那就是算法,在生活中用算法來描述的問題很多,在這里我們通過特例來看一下算法解決問題。
例:輸入字符串,統(tǒng)計所有字母的出現(xiàn)頻率后,以小寫字母的形式輸出出現(xiàn)頻率最高的字母,輸入字符串中有大寫有小寫,同一字母的大小視為同一字母。
樣例輸入:
Helloworld
樣例輸出:
一、輸入字符串,之后以第一個字符開始進行判斷標(biāo)記,之后判斷第二個字符是否和第一個字符一樣,在這之前嵌套一個循環(huán)結(jié)構(gòu),把所輸入的字符轉(zhuǎn)化成小寫字母,在轉(zhuǎn)換前一定要判斷,之后如果和第一個字符相同則標(biāo)記第一個字符累計2,否則新標(biāo)記一個字符之后計數(shù)1,以此類推直到最后一個字符。
二、利用水桶原理,直接利用出棧入棧的原理,如果和第一個一樣,那么累計,如果不是則出棧。
三、輸入26個英文字母,之后輸入字符串,每個字母去比較,有則累計,沒有則過,最后輸出計數(shù)最多的字母。
信息社會里,計算機及由計算機控制的智能系統(tǒng),算法在我們平時的生活中的日常領(lǐng)域中應(yīng)用極其廣泛,在教師課堂上,教師使用智能軟件實時收集,分析學(xué)生的學(xué)習(xí)情況,在機械工廠里面自動執(zhí)行加工,裝配等任務(wù),倉庫里面機器人也普遍的使用,在醫(yī)院我們的自助掛號,繳費,醫(yī)生用計算機診治判斷。
隨著科技的進步,時代的發(fā)展,智能生活慢慢地走入到了我們的視線,我們可以進屋通過手機開燈、給熱水器加熱。這里面的每一步都是被設(shè)計好的,并且按照預(yù)計的去進行執(zhí)行,這在算法當(dāng)中是每一個步驟都能被人或機器計算裝置執(zhí)行。而現(xiàn)在智能家居里面,第一種是燈光的控制,首先我們可以說按指定好的燈光進行排序,按1234進行分類之后,如果說我們進行燈光控制的話,第一點首先選擇一類是否繼續(xù),如果不繼續(xù)則進行二,如果繼續(xù)則顯示的是一。洗衣機的洗衣流程,實際上就是對手工洗衣流程的模擬,就是對洗衣流程算法的實現(xiàn),人們在洗衣過程中第一點是噴水,之后是衣服,洗衣液之后搓洗,擰干,晾干。智能洗衣機,只是把人工的流程進行了模擬和轉(zhuǎn)化,以故事版的形式描述,手工洗衣機的算法是無法讓機器自主完成的。
機器能夠?qū)崿F(xiàn)的算法,必須要有一定的特征,每一個算法必須要明確的定義。對于算法來說,他必須在有限的步驟內(nèi)能夠完成,不能無休止地進行執(zhí)行下去,那么對于算法。它可以沒有輸入或者是有多個輸入,但是至少要有一個輸出。需要執(zhí)行的算法,也就是編寫可執(zhí)行的機器指令。
對于算法的描述,最開始我們習(xí)慣用的是自然語言描述方法,也就是說,用普通的語言來描述算法的使用。之后推出了程序框圖,那么對于程序框圖來說,我們要進行輸入、輸出、判斷、循環(huán)結(jié)構(gòu)點。用流程圖描述算法比較直觀,簡潔明了,清晰的能看出算法結(jié)構(gòu)能表達明確算法的步驟,當(dāng)控制結(jié)構(gòu)和嵌套層次較復(fù)雜時,流程圖會很大,影響可讀性,也不是很適用于修改,這也是他的一個缺點。第三種方法就是偽代碼的方法,偽代碼也屬于算法描述語言的一種,它是介于自然語言和程序設(shè)計語言之間的人工語言來描寫算法,那么它書寫起來,非常簡單方便,格式也緊湊,表達精煉也是比較被人們所理解的。循環(huán)結(jié)構(gòu)是采用先判斷表達式之后再執(zhí)行循環(huán)體,在這里有兩種結(jié)構(gòu),一種是while形結(jié)構(gòu),一種是當(dāng)型結(jié)構(gòu),是當(dāng)什么時就是怎么樣,一種是說否什么怎么樣。
他們兩個的區(qū)別在于,就是一先判斷,還是先進入循環(huán)體。當(dāng)滿足條件時,那他就是當(dāng)型結(jié)構(gòu),如果先進循環(huán)體,那他就是while結(jié)構(gòu)。在描述算法的同時,要對算法的執(zhí)行限定步驟和限定時間不能是無限循環(huán)的,要在合理的時間內(nèi)一定要在合理的范圍內(nèi)進行結(jié)束,要確定算法的每一步,沒有歧義的語句必須明確,可以有零個輸入,可以有多個輸入,但至少有一個輸出。
對于算法來說,第一點,我們要判斷它的正確性,首先要保證這個算法是正確的,任何一組的輸入和不合理的輸入總能達到一個預(yù)期的輸出,第二點算法是具有可讀性的,一定要經(jīng)過多次的修改,一個較簡單的算法,可以被其他復(fù)雜的算法所調(diào)用,所以算法應(yīng)該是可讀可以理解的,保證人們對他們進行分析修改和使用,讓它實現(xiàn).第三點,保證它的高效性在時間和空間上,我們要保證一、時間效率高,二、存儲量低的特點。以前我們是基于C語言的基礎(chǔ)上來開發(fā)語言,轉(zhuǎn)化成機械與轉(zhuǎn)化成匯編語言,匯編語言再轉(zhuǎn)化成機械語言來實現(xiàn),而現(xiàn)在新出的一款叫做python非常實用,有兩種運行模式,首先是他的交互模式,第二是他的文件模式,在交互模式下,啟動窗口的提示符直接輸入指令,Python就會被執(zhí)行,第二個文件模式是打開他的集成開發(fā)環(huán)境,創(chuàng)建一個新的文件之后,對新文件進行編輯,在這里面可以檢查它的語法錯誤,最后程序運行以PY為后綴名。其實學(xué)習(xí)語言來說,C語言掌握了那么Java語言和python語言,就可以先讓他掌握。python語言是在C語言基礎(chǔ)上進行了一定的簡化,比如說print輸入和那個printf輸出,以及它的循環(huán)判定以及它的字符串命名,這個和C語言都是相同的。這樣一看算法離我們很近,尤其是生活中有很多實力,那么這里也體現(xiàn)了算法的意義。
現(xiàn)在進入了大數(shù)據(jù)和互聯(lián)網(wǎng)+時代,那么計算機在生活中已經(jīng)很常見,而計算機的基礎(chǔ),就是算法。有算法支撐的計算機,才能更好地為您服務(wù)。計算機的神奇主要歸功于算法及實現(xiàn)算法的計算機程序。
參考文獻:
上??萍冀逃霭嫔缧畔⒓夹g(shù)
浙江教育出版社信息技術(shù)
青岡縣第一中學(xué)校 黑龍江省 綏化市 王達