算法理論研究的是算法的設(shè)計技術(shù)和分析技術(shù).前者是指面對一個問毯.如何設(shè)計一個有效的葬法。后者是對已設(shè)計的算法.如何評價或翔斷其優(yōu)劣.二者是相互依存的,設(shè)計出的林法需要檢臉和評價.對算法的分析反過來又將改進林法的設(shè)計。
壓力校驗儀算法的基本概念。
算法的概念在計算機科學(xué)鎖城幾乎無處不在.在各仲汁算機軟件系統(tǒng)的實現(xiàn)中.算法設(shè)計往往處于核心地位。例如.操作系統(tǒng)是現(xiàn)代什算機系統(tǒng)中*的系統(tǒng)軟件.操作系統(tǒng)的各個任務(wù)都是一個單性的問。
毯,每個問呀由操作系統(tǒng)中的一個子程序根據(jù)特定的葬法來實現(xiàn).用什么方法來設(shè)汁算法.如何荊定一個林法的優(yōu)劣.所設(shè)計的算法需要占用多少時間和空間資耳.在實現(xiàn)一個軟件系統(tǒng)時.都是必須予以解決的重要問題。
1.1.1乃什A要學(xué)習(xí)算法
用計算機求解任何問粉郁離不開程序設(shè)計.而松序設(shè)計的核心是算法設(shè)計.一般來說.對程序設(shè)計的研究可以分為A個層次:算法,方法學(xué)、誘言和工其。其中算法研究位于zui高層次。算法對程序設(shè)計的指導(dǎo)可以廷續(xù)幾年共V.幾十年.它不依技于方法學(xué)、語言和工具的發(fā)展與變化。數(shù)顯壓力表例如.用于數(shù)據(jù)存儲和檢索的,lash算法產(chǎn)生于2。世紀(jì)50年代.用于排序的快速排序算法發(fā)明于20世紀(jì)Wil年代.但它們至今仍被人們廣為使用.可是程序設(shè)計方法已經(jīng)從結(jié)構(gòu)化發(fā)展到面向?qū)ο?程序設(shè)汁語言也變化了幾代.至于編程工其很難維待3年不變。所以.對于從事計算機專業(yè)的人士來說.學(xué)習(xí)算法是非常必要的。
學(xué)習(xí)算法還能夠提高人們分析問腸的徒力.算法可以肴作是解決問腸的一類特殊方法—它不是問頤的答案.而是經(jīng)過定義的。數(shù)顯壓力表用來獲得答案的求解過程。因此.無論是否涉及計算機,特定的算法設(shè)計技術(shù)都可以粉作是問腸求解的有效策略。若名的計算機科學(xué)家科努思(DonaldKnuth)是這樣論述這個問題的:“受過良好訓(xùn)練的計排機科學(xué)家知道如何處理算法。如何構(gòu)造算法、操作算法、理解算法以及分析算法.這些知識遠(yuǎn)不只是為了編寫良好的計算機程序而準(zhǔn)備的。算法是一種一般性的智能工具,一定有助于我們對其他學(xué)科的理解,不管是化學(xué)、語言學(xué)、音樂還是另外的學(xué)科。為什么算法會有這種作用呢?我們可以這樣理解:人們常說一個人只有把知識教給別人,才能賓正拿握它。實際上一個人只有把知識教給什林機,才能A正農(nóng)扭它,也就是說.將知識表述為一種其法……比起簡單地按照常規(guī)去理解事物.用算法將其形式化會使我們獲得更加深刻的理解。.
算法研究的核心問地是時間(速度)問越。人們可能有這樣的貶問:既然計算機硬件技術(shù)的發(fā)展使得計算機的性能不斷提高.算法的研究還有必耍嗎?
汁算機的功能越強大.人們就越想去嘗試更復(fù)雜的問班,而更復(fù)雜的間硒需要更大的計杯。現(xiàn)代計算技術(shù)在計算能力和存儲容且上的革命僅僅提供了計算更復(fù)雜問頤的有效工具,無論硬件性能如何提高,算法研究始終是推動計算機技術(shù)發(fā)展的關(guān)健。下面著幾個例子.
檢索技術(shù)
'vim世紀(jì)50年代.檢索的對象是規(guī)棋比較小的掀據(jù)集合.例如.編譯系統(tǒng)中的標(biāo)識符表.表中的記錄個數(shù)一般在幾十至效百這樣的效.級。20世紀(jì)70年代~80年代.數(shù)據(jù)管理采用數(shù)據(jù)庫技術(shù).效據(jù)庫的規(guī)棋在K級或M級.檢索算法的研究在這個時期取得了巨人的進展.
20世紀(jì)}Ii年代以來,Internet引起計算機應(yīng)用的急速發(fā)晨.海f效據(jù)的處If!技術(shù)成為研究的熱點,壓力校驗儀而且數(shù)據(jù)勝留的存儲介質(zhì)、數(shù)據(jù)的存儲方法以及數(shù)據(jù)的傳艷技術(shù)也發(fā)生了許多變化.這些變化使得檢索算法的研究更為復(fù)雜.也更為,要。
近年來.智能檢索技術(shù)成為基fWeb倍息檢索的研究熱點.使用搜索引攀進行Web信息檢索時.經(jīng)常看到一些搜索引攀前41'.個搜索結(jié)果中幾乎有一半來自同一個站點的不同頁面.這是檢索系統(tǒng)缺乏智能化的一種表現(xiàn)。另外.在傳統(tǒng)的Web信息檢索服務(wù)中.信息的傳愉是按pul!的棋式進行的.即用戶找信息。而采用push的方式.是信息找用戶.用戶不必進行任何信息槍索.就能方便地獲得自己感興趣的俏息.這就是智能信息推送技術(shù).這些新技術(shù)的每一項孩要進步都與算法研究的突破有關(guān)。
2.壓緒與解壓綺聲,多媒體技術(shù)的發(fā)1RI計算機的處理對alb原來的字符發(fā)展到圖像、圖形、音氛視栩砰多媒體致化信息,這些信息數(shù)字化后.其特點就是數(shù)據(jù)t非常鷹大.同時.處理多摸體所需的高速傳輸速度也是汁算機總線所不能承受的。因此數(shù)顯壓力表對多媒體數(shù)據(jù)的存儲和傳愉都要求對數(shù)據(jù)進行壓縮。聲音文件的MP3壓縮技術(shù)說明了壓繪與解壓縮算法研究的巨大成功,一個抽放3-4分鐘歇曲的MP3文件通常只需3MB左右的徽盤空間.