版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章 緒論1.1 什么是數(shù)據(jù)結(jié)構(gòu)1.2 基本概念和術(shù)語(yǔ)1.4 算法和算法分析1.3 抽象數(shù)據(jù)類型的表示與實(shí)現(xiàn)一、算法二、算法設(shè)計(jì)的要求三、算法效率的度量四、算法的存儲(chǔ)空間需求1.4 算法和算法分析1有窮性 2確定性 3可行性4有輸入 5有輸出一、算法 算法(algorithm):是對(duì)特定問(wèn)題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示一個(gè)或多個(gè)操作。 一個(gè)算法還具有以下5個(gè)重要特性: 1有窮性 對(duì)于任意一組合法輸入值,在執(zhí)行有窮步驟之后一定能結(jié)束,即:算法中的每個(gè)步驟都能在有限時(shí)間內(nèi)完成; 2確定性 對(duì)于每種情況下所應(yīng)執(zhí)行的操作,在算法中都有確切的規(guī)定,使算法的執(zhí)行者或閱讀者都
2、能明確其含義及如何執(zhí)行。并且在任何條件下,算法都只有一條執(zhí)行路徑;3可行性 算法中的所有操作都必須足夠基本,都可以通過(guò)已經(jīng)實(shí)現(xiàn)的基本操作運(yùn)算有限次實(shí)現(xiàn)之;4有輸入 作為算法加工對(duì)象的量值,通常體現(xiàn)為算法中的一組變量。有些輸入量需要在算法執(zhí)行過(guò)程中輸入,而有的算法表面上可以沒(méi)有輸入,實(shí)際上已被嵌入算法之中; 5有輸出 它是一組與“輸入”與確定關(guān)系的量值,是算法進(jìn)行信息加工后得到的結(jié)果,這種確定關(guān)系即為算法的功能。二、算法設(shè)計(jì)的原則設(shè)計(jì)算法時(shí),通常應(yīng)考慮達(dá)到以下目標(biāo):1正確性2. 可讀性3健壯性4高效率與低存儲(chǔ)量需求1正確性 首先,算法應(yīng)當(dāng)滿足以特定的“規(guī)格說(shuō)明”方式給出的需求。 其次,對(duì)算法是否
3、“正確”的理解可以有以下四個(gè)層次:a程序中不含語(yǔ)法錯(cuò)誤;b程序?qū)τ趲捉M輸入數(shù)據(jù)能夠得出滿足要求的結(jié)果; c程序?qū)τ诰倪x擇的、典型、苛刻且?guī)в械箅y性的幾組輸入數(shù)據(jù)能夠得出滿足要求的結(jié)果;通常以第 c 層意義的正確性作為衡量一個(gè)算法是否合格的標(biāo)準(zhǔn)。 d程序?qū)τ谝磺泻戏ǖ妮斎霐?shù)據(jù)都能得出滿足要求的結(jié)果;2. 可讀性 算法主要是為了人的閱讀與交流,其次才是為計(jì)算機(jī)執(zhí)行。因此算法應(yīng)該易于人的理解;另一方面,晦澀難讀的程序易于隱藏較多錯(cuò)誤而難以調(diào)試;3健壯性 當(dāng)輸入的數(shù)據(jù)非法時(shí),算法應(yīng)當(dāng)恰當(dāng)?shù)刈鞒龇从郴蜻M(jìn)行相應(yīng)處理,而不是產(chǎn)生莫名奇妙的輸出結(jié)果。并且,處理出錯(cuò)的方法不應(yīng)是中斷程序的執(zhí)行,而應(yīng)是返回一個(gè)表
4、示錯(cuò)誤或錯(cuò)誤性質(zhì)的值,以便在更高的抽象層次上進(jìn)行處理。4高效率與低存儲(chǔ)量需求 通常,效率指的是算法執(zhí)行時(shí)間;存儲(chǔ)量指的是算法執(zhí)行過(guò)程中所需的最大存儲(chǔ)空間。兩者都與問(wèn)題的規(guī)模有關(guān)。三、算法效率的度量通常有兩種衡量算法效率的方法: 事后統(tǒng)計(jì)法事前分析估算法缺點(diǎn):1。必須執(zhí)行程序 2。其它因素掩蓋算法本質(zhì)和算法執(zhí)行時(shí)間相關(guān)的因素:1算法選用的策略2問(wèn)題的規(guī)模3編寫(xiě)程序的語(yǔ)言4編譯程序產(chǎn)生的機(jī)器代碼的質(zhì)量5計(jì)算機(jī)執(zhí)行指令的速度 一個(gè)特定算法的“運(yùn)行工作量”的大小,只依賴于問(wèn)題的規(guī)模(通常用整數(shù)量n表示),或者說(shuō),它是問(wèn)題規(guī)模的函數(shù)。 一個(gè)算法是由控制結(jié)構(gòu)(順序、分支和循環(huán)三種)和原操作(指固有數(shù)據(jù)類型
5、的操作)構(gòu)成的,則算法時(shí)間取決于兩者的綜合效果。為了便于比較同一問(wèn)題的不同算法,通常的做法是,從算法中選取一種對(duì)于所研究的問(wèn)題(或算法類型)來(lái)說(shuō)是基本操作的原操作,以該基本操作重復(fù)執(zhí)行的次數(shù)作為算法的時(shí)間量度。 假如,隨著問(wèn)題規(guī)模 n 的增長(zhǎng),算法執(zhí)行時(shí)間的增長(zhǎng)率和 f(n) 的增長(zhǎng)率相同,則可記作:T (n) = O(f(n)稱T (n) 為算法的(漸近)時(shí)間復(fù)雜度如何估算 算法的時(shí)間復(fù)雜度?算法 = 控制結(jié)構(gòu) + 原操作 (固有數(shù)據(jù)類型的操作)算法的執(zhí)行時(shí)間 =原操作(i)的執(zhí)行次數(shù)原操作(i)的執(zhí)行時(shí)間 算法的執(zhí)行時(shí)間 與 原操作執(zhí)行次數(shù)之和 成正比 從算法中選取一種對(duì)于所研究的問(wèn)題來(lái)說(shuō)
6、是 基本操作 的原操作,以該基本操作 在算法中重復(fù)執(zhí)行的次數(shù) 作為算法運(yùn)行時(shí)間的衡量準(zhǔn)則。語(yǔ)句頻度是指的是該語(yǔ)句重復(fù)執(zhí)行的次數(shù)。例一兩個(gè)矩陣相乘void mult(int a, int b, int& c ) / 以二維數(shù)組存儲(chǔ)矩陣元素,c 為 a 和 b 的乘積 for (i=1; i=n; +i) for (j=1; j=n; +j) ci,j = 0; for (k=1; k=n; +k) ci,j += ai,k*bk,j; /for /mult基本操作: 乘法操作時(shí)間復(fù)雜度: O(n3) 由于算法的時(shí)間復(fù)雜度考慮的只是對(duì)于問(wèn)題規(guī)模n的增長(zhǎng)率,在難以精確計(jì)算基本操作執(zhí)行次數(shù)(語(yǔ)句頻度)
7、的情況下,只需要求出它關(guān)于n的增長(zhǎng)率或階即可。通常算法中基本操作重復(fù)執(zhí)行的次數(shù)隨問(wèn)題的輸入數(shù)據(jù)集不同而不同,對(duì)這類算法的分析,其一是計(jì)算算法的平均時(shí)間復(fù)雜度,其二是計(jì)算最壞情況下的時(shí)間復(fù)雜度。 常用的時(shí)間復(fù)雜度有如下的關(guān)系:O(1)=O(log2n)=O(n)=O(nlog2n)=O(n2)=O(2n)四、算法的存儲(chǔ)空間需求算法的空間復(fù)雜度定義為: 表示隨著問(wèn)題規(guī)模 n 的增大,算法運(yùn)行所需存儲(chǔ)量的增長(zhǎng)率與 g(n) 的增長(zhǎng)率相同。S(n) = O(g(n)算法的存儲(chǔ)量包括:1輸入數(shù)據(jù)所占空間2程序本身所占空間;3輔助變量所占空間。 若輸入數(shù)據(jù)所占空間只取決與問(wèn)題 本身,和算法無(wú)關(guān),則只需要分析除 輸入和程序之外的輔助變量所占額外 空間。 若所需額外空間相對(duì)于輸
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 腸內(nèi)營(yíng)養(yǎng)與腸外營(yíng)養(yǎng)
- 七年級(jí)傳統(tǒng)文化教案編
- 廣告業(yè)務(wù)員工作參考計(jì)劃范文2
- 電子商務(wù)產(chǎn)業(yè)園租賃合同
- 苗木基地租賃合同
- 停車場(chǎng)車位租用合同
- 六年級(jí)英語(yǔ)上冊(cè)Unit4Ihaveapenpal第一課時(shí)教案人教PEP版
- 2024年跨國(guó)電子產(chǎn)品貿(mào)易合同中英文版版B版
- 2025年生物質(zhì)碳化專用爐合作協(xié)議書(shū)
- 2024年跨境電商企業(yè)承包經(jīng)營(yíng)合作協(xié)議集錦3篇
- 浙江省杭州市2023-2024學(xué)年高二上學(xué)期期末學(xué)業(yè)水平測(cè)試政治試題 含解析
- 人力資源規(guī)劃
- 中國(guó)藥典無(wú)菌、微生物限度和細(xì)菌內(nèi)毒素檢查方法學(xué)驗(yàn)證內(nèi)容詳解
- 《實(shí)用日本語(yǔ)應(yīng)用文寫(xiě)作》全套電子課件完整版ppt整本書(shū)電子教案最全教學(xué)教程整套課件
- 公司員工手冊(cè)-全文(完整版)
- 鍋爐習(xí)題帶答案
- 土木工程課程設(shè)計(jì)38281
- 農(nóng)村宅基地地籍測(cè)繪技術(shù)方案
- 液壓爬模作業(yè)指導(dǎo)書(shū)
- 劇院的建筑設(shè)計(jì)規(guī)范標(biāo)準(zhǔn)
- 遺傳分析的一個(gè)基本原理是DNA的物理距離和遺傳距離方面...
評(píng)論
0/150
提交評(píng)論