




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫第1頁,共42頁,2023年,2月20日,星期五第一部分
數(shù)據(jù)結(jié)構(gòu)第2頁,共42頁,2023年,2月20日,星期五教材《數(shù)據(jù)結(jié)構(gòu)(c語言版)》,嚴(yán)蔚敏等編著,清華大學(xué)出版社,1997《數(shù)據(jù)結(jié)構(gòu)題集(c語言版)》,嚴(yán)蔚敏等編著,清華大學(xué)出版社,1999第3頁,共42頁,2023年,2月20日,星期五參考書《數(shù)據(jù)結(jié)構(gòu)(第二版)》,唐策善、黃劉生編著,中國科大出版社,2001
"DataStructureswithC++",WilliawFordetal.,PrenticeHallInc.,1996."DataStructures&ProgramDesigninC,2ndEd.",RobertKruseetal.,PrenticeHallInc.,1997.
第4頁,共42頁,2023年,2月20日,星期五什么是數(shù)據(jù)結(jié)構(gòu)基本概念和術(shù)語抽象數(shù)據(jù)類型算法分析性能分析與度量第一章緒論第5頁,共42頁,2023年,2月20日,星期五學(xué)生成績表格第6頁,共42頁,2023年,2月20日,星期五選課單學(xué)號課程號時間成績20001DS2000SX20002001,22000,9788720002ART2000DS20002002,22001,2689020003SX2000DS20002000,92001,2877820004SX2000ART20002000,92002,28976第7頁,共42頁,2023年,2月20日,星期五UNIX文件系統(tǒng)結(jié)構(gòu)圖/rootbinlibuseretcmathdsswyintaoxieStack.cppQueue.cppTree.cpp第8頁,共42頁,2023年,2月20日,星期五綜上,描述這類非數(shù)值計算問題的數(shù)學(xué)模型不是數(shù)學(xué)方程,而是樹、表和圖之類的數(shù)據(jù)結(jié)構(gòu)。因此從廣義上講,數(shù)據(jù)結(jié)構(gòu)描述現(xiàn)實(shí)世界實(shí)體的數(shù)學(xué)模型及其上的操作在計算機(jī)中的表示和實(shí)現(xiàn).第9頁,共42頁,2023年,2月20日,星期五信息?數(shù)據(jù)?知識?
?第10頁,共42頁,2023年,2月20日,星期五基本概念和術(shù)語數(shù)據(jù)(Data)是信息的載體,是描述客觀事物的數(shù)、字符、以及所有能輸入到計算機(jī)中,被計算機(jī)程序識別和處理的符號的集合。
數(shù)值性數(shù)據(jù)非數(shù)值性數(shù)據(jù)第11頁,共42頁,2023年,2月20日,星期五數(shù)據(jù)元素(DataElement)數(shù)據(jù)的基本單位。在計算機(jī)程序中常作為一個整體進(jìn)行考慮和處理。有時一個數(shù)據(jù)元素可以由若干數(shù)據(jù)項(DataItem)組成。數(shù)據(jù)項是數(shù)據(jù)的不可分割的最小單位。數(shù)據(jù)元素又稱為元素、結(jié)點(diǎn)、記錄第12頁,共42頁,2023年,2月20日,星期五數(shù)據(jù)項(DataItem)
學(xué)號姓名出生日期年月日籍貫?zāi)昙壪祫e宿舍號第13頁,共42頁,2023年,2月20日,星期五數(shù)據(jù)對象(DataObject)具有相同性質(zhì)的數(shù)據(jù)元素的集合。整數(shù)數(shù)據(jù)對象N={0,1,2,…}字母字符數(shù)據(jù)對象
C={‘A’,‘B’,‘C’,…‘F’}第14頁,共42頁,2023年,2月20日,星期五數(shù)據(jù)結(jié)構(gòu)(DataStructure)形式定義:
某一數(shù)據(jù)對象的所有數(shù)據(jù)成員之間的關(guān)系。記為:
Data_Structure={D,S}
其中,D是某一數(shù)據(jù)對象,S是該對象中所有數(shù)據(jù)成員之間的關(guān)系的有限集合。第15頁,共42頁,2023年,2月20日,星期五序偶:
一般來說,兩個具有固定次序的客體組成一個序偶,常常表示兩個客體之間的關(guān)系。記作<x,y>。其中的x和y分別稱為第一元素和第二元素。如:“中國地處亞洲”表示為<中國,亞洲>序偶具有確定的次序。
<x,y>=<u,v>,iffx=u,y=v第一元素本身也可是一序偶。這樣,序偶的概念可推廣到n元組。
如:三元組可定義為一序偶<<x,y>,z>第16頁,共42頁,2023年,2月20日,星期五關(guān)系:任一序偶的集合確定了一個二元關(guān)系R,R中任一序偶<x,y>可記做xRy。例如,在實(shí)數(shù)中關(guān)系>
可記作
>={<x,y>|x,y是實(shí)數(shù)且x>y}
數(shù)據(jù)結(jié)構(gòu)的一個例子(例1.5)Group=(P,R)
第17頁,共42頁,2023年,2月20日,星期五四類基本結(jié)構(gòu)集合線性結(jié)構(gòu)樹形結(jié)構(gòu)網(wǎng)狀結(jié)構(gòu)第18頁,共42頁,2023年,2月20日,星期五數(shù)據(jù)的邏輯結(jié)構(gòu)從邏輯關(guān)系上描述數(shù)據(jù),與數(shù)據(jù)的存儲無關(guān);從具體問題抽象出來的數(shù)據(jù)模型;與數(shù)據(jù)元素本身的形式、內(nèi)容無關(guān);與數(shù)據(jù)元素的相對位置無關(guān)。第19頁,共42頁,2023年,2月20日,星期五數(shù)據(jù)的邏輯結(jié)構(gòu)分類線性結(jié)構(gòu)
線性表非線性結(jié)構(gòu)
樹圖(或網(wǎng)絡(luò))第20頁,共42頁,2023年,2月20日,星期五bindevetclibuser2114131211234678910315871011998745662313155線性結(jié)構(gòu)樹形結(jié)構(gòu)
樹二叉樹二叉排序樹第21頁,共42頁,2023年,2月20日,星期五堆結(jié)構(gòu)123548711102916125643125436113318146651921圖結(jié)構(gòu)網(wǎng)絡(luò)結(jié)構(gòu)第22頁,共42頁,2023年,2月20日,星期五數(shù)據(jù)的存儲結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)在計算機(jī)中的表示(又稱映象)。包括數(shù)據(jù)元素的表示和關(guān)系的表示。數(shù)據(jù)元素的表示:位串(元素、結(jié)點(diǎn))關(guān)系的表示
順序映象非順序映象第23頁,共42頁,2023年,2月20日,星期五抽象數(shù)據(jù)類型(AbstractDataType)數(shù)據(jù)類型
定義:一個值的集合和定義在這個值集上的一組操作的總稱。C語言中的基本數(shù)據(jù)類型
intcharfloatdoublevoid整型字符型浮點(diǎn)型雙精度型無值第24頁,共42頁,2023年,2月20日,星期五抽象數(shù)據(jù)類型是指一個數(shù)學(xué)模型以及定義在此數(shù)學(xué)模型上的一組操作數(shù)據(jù)結(jié)構(gòu)+定義在此數(shù)據(jù)結(jié)構(gòu)上的一組操作=抽象數(shù)據(jù)類型例如:矩陣+(求轉(zhuǎn)置、加、乘、 求逆、求特征值) 構(gòu)成一個矩陣的抽象數(shù)據(jù)類型第25頁,共42頁,2023年,2月20日,星期五抽象數(shù)據(jù)類型的描述抽象數(shù)據(jù)類型可用(D,S,P)三元組表示 其中,D是數(shù)據(jù)對象,S是D上的關(guān)系集,P是對D的基本操作集。
ADT抽象數(shù)據(jù)類型名{
數(shù)據(jù)對象:〈數(shù)據(jù)對象的定義〉
數(shù)據(jù)關(guān)系:〈數(shù)據(jù)關(guān)系的定義〉
基本操作:〈基本操作的定義〉 }ADT抽象數(shù)據(jù)類型名第26頁,共42頁,2023年,2月20日,星期五其中,數(shù)據(jù)對象、數(shù)據(jù)關(guān)系用偽碼描述;基本操作定義格式為 基本操作名(參數(shù)表) 初始條件:〈初始條件描述〉
操作結(jié)果:〈操作結(jié)果描述〉基本操作有兩種參數(shù):賦值參數(shù)只為操作提供輸入值;引用參數(shù)以&打頭,除可提供輸入值外,還將返回操作結(jié)果?!俺跏紬l件”描述了操作執(zhí)行之前數(shù)據(jù)結(jié)構(gòu)和參數(shù)應(yīng)滿足的條件,若不滿足,則操作失敗,并返回相應(yīng)出錯信息?!安僮鹘Y(jié)果”說明了操作正常完成之后,數(shù)據(jù)結(jié)構(gòu)的變化狀況和應(yīng)返回的結(jié)果。若初始條件為空,則省略之。第27頁,共42頁,2023年,2月20日,星期五抽象數(shù)據(jù)類型的表示和實(shí)現(xiàn)
抽象數(shù)據(jù)類型可以通過固有數(shù)據(jù)類型(高級編程語言中已實(shí)現(xiàn)的數(shù)據(jù)類型)來實(shí)現(xiàn)抽象數(shù)據(jù)類型類class數(shù)據(jù)對象數(shù)據(jù)成員基本操作成員函數(shù)(方法)在C++中,類的成分(數(shù)據(jù)成員和成員函數(shù))可以有三種訪問級別Private私有成分(只允許類的成員函數(shù)進(jìn)行訪問)
protected保護(hù)成分(只允許類的成員函數(shù)及其子孫類進(jìn)行訪問)public公有成分(允許類的成員函數(shù)、類的實(shí)例及其子孫類、子孫類的實(shí)例進(jìn)行訪問)第28頁,共42頁,2023年,2月20日,星期五算法和算法分析定義:為了解決某類問題而規(guī)定的一個有限長的操作序列。特性:有窮性算法在執(zhí)行有窮步后能結(jié)束確定性每步定義都是確切、無歧義可行性每一條運(yùn)算應(yīng)足夠基本輸入有0個或多個輸入輸出有一個或多個輸出第29頁,共42頁,2023年,2月20日,星期五算法設(shè)計例子:
選擇排序問題:遞增排序解決方案:逐個選擇最小數(shù)據(jù)算法框架:
for(inti=0;i<n-1;i++){
//n-1趟 從a[i]檢查到a[n-1];
若最小整數(shù)在a[k],交換a[i]與a[k];}細(xì)化:SelectSort第30頁,共42頁,2023年,2月20日,星期五voidselectSort(inta[],intn){
//對n個整數(shù)a[0],a[1],…,a[n-1]按遞增順序排序
for(inti=0;i<n-1;i++){ intk=i;
for(intj=i+1;j<n;j++)
if(a[j]<a[k])k=j;//從a[i]查到a[n-1],找最小整數(shù),在a[k]
inttemp=a[i];a[i]=a[k];a[k]=temp;}}
第31頁,共42頁,2023年,2月20日,星期五性能分析與度量算法的性能標(biāo)準(zhǔn)正確性可讀性健壯性效率(時間、空間)第32頁,共42頁,2023年,2月20日,星期五算法的事后統(tǒng)計(后期測試)在算法中的某些部位插裝時間函數(shù)time
(),
測定算法完成某一功能所花費(fèi)時間
doublestart,stop;
time(&start);
intk=seqsearch(a,n,x);
time(&stop);
doublerunTime=stop-start;printf(”%d%d\n",n,runTime);第33頁,共42頁,2023年,2月20日,星期五intseqsearch(inta[],intn,intx){//在a[0],…,a[n-1]中搜索x
inti=0;
while(i<n&&a[i]!=x)
i++;
if(i==n)return
-1;
returni;}
第34頁,共42頁,2023年,2月20日,星期五算法的事前估計時間復(fù)雜度度量運(yùn)行時間=算法中每條語句執(zhí)行時間之和。每條語句執(zhí)行時間=該語句的執(zhí)行次數(shù)(頻度)*語句執(zhí)行一次所需時間。語句執(zhí)行一次所需時間取決于機(jī)器的指令性能和速度和編譯所產(chǎn)生的代碼質(zhì)量,很難確定。設(shè)每條語句執(zhí)行一次所需時間為單位時間,則一個算法的運(yùn)行時間就是該算法中所有語句的頻度之和。第35頁,共42頁,2023年,2月20日,星期五舉例1矩陣相乘算法
for(i=1;i<=n;++i)//n+1for(j=1;j<=n;++j){//n(n+1)c[i][j]=0;//n2for(k=1;k<=n;++k)//n2(n+1)c[i][j]+=a[i][k]*b[k][j];//n3}
則算法執(zhí)行時間T(n)為所有語句的頻度之和。
T(n)=n+1+n(n+1)+…+n3
=2n3
+3n2+2n+1第36頁,共42頁,2023年,2月20日,星期五漸進(jìn)時間復(fù)雜度
引入“O”記號,以體現(xiàn)隨問題規(guī)模n的增長率。
T(n)=n+1+n(n+1)+…+n3
=2n3
+3n2+2n+1=O(n3),其中n3
為增長最快的項。最壞時間復(fù)雜度vs.平均時間復(fù)雜度
有時算法基本操作重復(fù)執(zhí)行次數(shù)還隨問題的輸入數(shù)據(jù)集不同而不同(如一些排序算法)。這時可分析最壞時間復(fù)雜度(最壞情況下的時間復(fù)雜度)和平均時間復(fù)雜度(平均情況下的時間復(fù)雜度)第37頁,共42頁,2023年,2月20日,星期五
估計算法時間的通常做法:
根據(jù)問題(或算法類型),從算法中選取一種原操作(指固有數(shù)據(jù)類型的操作)作為基本操作。其重復(fù)執(zhí)行次數(shù)應(yīng)與算法執(zhí)行時間成正比;一般為最深層循環(huán)內(nèi)的語句中的原操作;用該基本操作重復(fù)執(zhí)行的次數(shù)作為算法的時間度量。即統(tǒng)計包含該操作的所有語句的頻度之和。如:上例中選取乘法為基本操作;算法執(zhí)行時間T(n)則正比于乘法所在語句的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 字母表示數(shù)(教學(xué)設(shè)計)-2024-2025學(xué)年四年級下冊數(shù)學(xué)北師大版
- 第一單元第6課 圖像效果的處理-教學(xué)設(shè)計 2023-2024學(xué)年粵教版(2019)初中信息技術(shù)八年級上冊 -
- 第17章第三節(jié)電阻的測量教學(xué)設(shè)計-2024-2025學(xué)年人教版物理九年級上學(xué)期
- 噴槍在老年活動中心設(shè)施涂裝的應(yīng)用考核試卷
- 彈射玩具行業(yè)市場趨勢分析與預(yù)測考核試卷
- 摩托車安全帶張緊器檢查考核試卷
- 建筑材批發(fā)商市場差異化策略考核試卷
- Unit7 Section B 1a-1d 教學(xué)設(shè)計 2024-2025學(xué)年人教版八年級英語下冊
- 落實(shí)員工激勵機(jī)制的工作方案計劃
- 優(yōu)化客戶服務(wù)流程的年度措施計劃
- 【公開課】同一直線上二力的合成+課件+2024-2025學(xué)年+人教版(2024)初中物理八年級下冊+
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計規(guī)范
- 預(yù)防艾梅乙母嬰傳播工作規(guī)范解讀
- 2022年公司接待流程及標(biāo)準(zhǔn)管理細(xì)則
- 成交量趨勢拐點(diǎn)
- 特征選擇和提取特征提取
- 現(xiàn)代商業(yè)空間展示設(shè)計ppt
- 高家堡副井井筒壁座施工安全技術(shù)措施
- 《民航貨物運(yùn)輸》課程標(biāo)準(zhǔn)
- 雙胎妊娠 PPT課件
- 脊髓壓迫癥A吳紹勇
評論
0/150
提交評論