數(shù)據(jù)結(jié)構(gòu)概論課件_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)概論課件_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)概論課件_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)概論課件_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)概論課件_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論1.1 什么是數(shù)據(jù)結(jié)構(gòu) 1.2 基本概念和術(shù)語(yǔ) 1.2.1 數(shù)據(jù)結(jié)構(gòu)的發(fā)展數(shù)據(jù)結(jié)構(gòu)的發(fā)展 1.2.2 數(shù)據(jù)結(jié)構(gòu)的基本概念和術(shù)語(yǔ)數(shù)據(jù)結(jié)構(gòu)的基本概念和術(shù)語(yǔ) 1.3 抽象數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu) 1.4 學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的意義 1.5 算法算法1.5.1 算法及其性質(zhì)1.5.2 算法描述的分析算法描述的分析 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 信息中的各個(gè)數(shù)據(jù)元素并不是孤立存在的,它們之間存在著一定的結(jié)構(gòu)關(guān)系。 一般說(shuō)來(lái),使用計(jì)算機(jī)解決具體問(wèn)題時(shí),通常需要幾個(gè)步驟:分析具體問(wèn)題得到數(shù)學(xué)模型,設(shè)計(jì)解決數(shù)學(xué)模型的算法,編制程序并調(diào)試,最后得到最終答案。 在數(shù)據(jù)結(jié)構(gòu)中數(shù)據(jù)之間的關(guān)系主要有兩種,它們分別

2、是線性關(guān)系和非線性關(guān)系,其中非線性關(guān)系又可以分為樹型關(guān)系和圖關(guān)系。 數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)是密不可分的兩個(gè)方面,在實(shí)現(xiàn)算法時(shí),首先應(yīng)解決數(shù)據(jù)的存儲(chǔ)問(wèn)題。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 數(shù)據(jù)之間既要考慮存儲(chǔ),又要考慮數(shù)據(jù)單位之間的關(guān)系,在確定了存儲(chǔ)結(jié)構(gòu)后,根據(jù)存儲(chǔ)的結(jié)構(gòu)再來(lái)確定相應(yīng)操作的實(shí)現(xiàn)方法。 簡(jiǎn)單說(shuō)數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)的存儲(chǔ)、數(shù)據(jù)之間的關(guān)系和對(duì)數(shù)據(jù)實(shí)現(xiàn)各種操作的一門學(xué)科。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 數(shù)據(jù)結(jié)構(gòu)的定義可以記作: Data-Structure=(D,R) 其中D是數(shù)據(jù)元素的有限集合,R是D上的關(guān)系。 一般情況下,“關(guān)系”是指數(shù)據(jù)元素之間存在的邏輯關(guān)系,也稱為數(shù)據(jù)的邏輯結(jié)構(gòu)。數(shù)據(jù)在計(jì)算

3、機(jī)內(nèi)的存儲(chǔ)表示(或映象)稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 邏輯結(jié)構(gòu)體現(xiàn)的是數(shù)據(jù)元素之間的邏輯關(guān)系,換句話說(shuō)就是從操作對(duì)象中抽象出來(lái)的數(shù)學(xué)模型,因此又稱為抽象結(jié)構(gòu),通常習(xí)慣說(shuō)的數(shù)據(jù)結(jié)構(gòu)一般就是指的邏輯結(jié)構(gòu)。然而討論數(shù)據(jù)結(jié)構(gòu)的目的是為了在計(jì)算機(jī)中實(shí)現(xiàn)對(duì)數(shù)據(jù)的操作,因此還需要研究數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。 存儲(chǔ)結(jié)構(gòu)是數(shù)據(jù)在計(jì)算機(jī)內(nèi)的表示(映象),又稱物理結(jié)構(gòu)。它包括數(shù)據(jù)元素的表示和關(guān)系的表示。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 由于映象的方法不同,所以同一種的邏輯結(jié)構(gòu)可以映象成兩種不同的存儲(chǔ)結(jié)構(gòu):順序映象(順序存儲(chǔ)結(jié)構(gòu))和非順序映象(非順序存儲(chǔ)結(jié)構(gòu))。 順序映象的特點(diǎn)是在順序存儲(chǔ)結(jié)構(gòu)(一般用一

4、維數(shù)組)中體現(xiàn)數(shù)據(jù)之間的關(guān)系;而非順序存儲(chǔ)結(jié)構(gòu)則一般采用指針實(shí)現(xiàn)數(shù)據(jù)之間的關(guān)系,包括鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)(鏈表)和散列結(jié)構(gòu)等。 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)要能夠正確反映數(shù)據(jù)元素之間的邏輯關(guān)系。也就是說(shuō)數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是密不可分的兩個(gè)方面,任何一個(gè)算法的設(shè)計(jì)取決于選定的邏輯結(jié)構(gòu),而算法的實(shí)現(xiàn)則依賴于采用的存儲(chǔ)結(jié)構(gòu)。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 順序映象(順序存儲(chǔ)結(jié)構(gòu))是借助元素在存儲(chǔ)器中位置表示數(shù)據(jù)元素之間的邏輯關(guān)系,或邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置上相鄰的存儲(chǔ)單元里,結(jié)點(diǎn)的邏輯關(guān)系由存儲(chǔ)單元的鄰接關(guān)系來(lái)體現(xiàn);而非順序映象(鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu))是借助元素存儲(chǔ)地址的指針表示元素之間的邏輯關(guān)系,或邏輯上相鄰的結(jié)點(diǎn)

5、在物理位置上可相鄰,可不相鄰,邏輯關(guān)系由附加的指針段表示。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 數(shù)據(jù)的非順序存儲(chǔ)結(jié)構(gòu)除包括鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)(簡(jiǎn)稱鏈表)以外,還有散列存儲(chǔ)結(jié)構(gòu)、索引存儲(chǔ)結(jié)構(gòu)等。 鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是利用指針直接表示數(shù)據(jù)元素之間的關(guān)系。 散列結(jié)構(gòu)的基本思想是根據(jù)結(jié)點(diǎn)的關(guān)鍵字,利用散列函數(shù)直接計(jì)算出該結(jié)點(diǎn)的存儲(chǔ)地址。 索引存儲(chǔ)結(jié)構(gòu)是指在存儲(chǔ)結(jié)點(diǎn)信息的同時(shí),還建立附加的索引表。索引表的每一項(xiàng)稱為索引項(xiàng),索引項(xiàng)的一般形式是:(關(guān)鍵字,地址)。關(guān)鍵字:能夠惟一標(biāo)識(shí)一個(gè)結(jié)點(diǎn)的那些數(shù)據(jù)項(xiàng)集合;索引存儲(chǔ)結(jié)構(gòu)分為稠密索引和稀疏索引,其中稠密索引是指每個(gè)結(jié)點(diǎn)在索引表中都有一個(gè)索引項(xiàng)的索引表;而稀疏索引是指一組結(jié)點(diǎn)在索引

6、表中對(duì)應(yīng)一個(gè)索引項(xiàng)的索引表。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 針對(duì)存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素存儲(chǔ)在計(jì)算機(jī)中,應(yīng)對(duì)每個(gè)數(shù)據(jù)元素確定其取值范圍屬性就是數(shù)據(jù)類型。數(shù)據(jù)類型是和數(shù)據(jù)結(jié)構(gòu)密切相關(guān)的一個(gè)概念,用以刻畫(程序)操作對(duì)象的特征。 數(shù)據(jù)類型根據(jù)是否允許分解分為原子類型和結(jié)構(gòu)類型,其中原子類型是指其值不可再分的數(shù)據(jù)類型,例如整型、字符型等;而結(jié)構(gòu)類型是指其值可以再分解為若干成分(分量)的數(shù)據(jù)類型,例如數(shù)組的值由若干分量組成。 根據(jù)數(shù)據(jù)的結(jié)構(gòu)(邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu))特性在數(shù)據(jù)的生存期間的變動(dòng)情況,將數(shù)據(jù)結(jié)構(gòu)分為靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)結(jié)構(gòu)。靜態(tài)結(jié)構(gòu)是指在數(shù)據(jù)存在期不發(fā)生任何變動(dòng),例如高級(jí)語(yǔ)言中的靜態(tài)數(shù)組;而動(dòng)態(tài)結(jié)構(gòu)是指在一定

7、范圍內(nèi)結(jié)構(gòu)的大小可以發(fā)生變動(dòng),如使用的堆棧。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 總之,數(shù)據(jù)結(jié)構(gòu)所要研究的主要內(nèi)容簡(jiǎn)單歸納為以下三個(gè)方面: 研究數(shù)據(jù)元素之間的客觀聯(lián)系(邏輯結(jié)構(gòu)); 研究數(shù)據(jù)在計(jì)算機(jī)內(nèi)部的存儲(chǔ)方法(存儲(chǔ)結(jié)構(gòu)); 研究如何在數(shù)據(jù)的各種結(jié)構(gòu)(邏輯的和物理的)上實(shí)施有效的操作或處理(算法)。 所以數(shù)據(jù)結(jié)構(gòu)是一門抽象地研究數(shù)據(jù)之間的關(guān)系的學(xué)科。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 1.2.1 數(shù)據(jù)結(jié)構(gòu)的發(fā)展數(shù)據(jù)結(jié)構(gòu)的發(fā)展 數(shù)據(jù)結(jié)構(gòu)作為一門獨(dú)立的課程始于1968年,在我國(guó)數(shù)據(jù)結(jié)構(gòu)作為一門獨(dú)立課程在80年代初,早期的數(shù)據(jù)結(jié)構(gòu)對(duì)課程的范圍沒(méi)有明確的規(guī)定,數(shù)據(jù)結(jié)構(gòu)的內(nèi)容幾乎和圖論、樹的理論是相同的,在60到70年

8、代隨著大型程序的出現(xiàn),軟件也相對(duì)獨(dú)立,結(jié)構(gòu)程序設(shè)計(jì)逐步成為程序設(shè)計(jì)方法學(xué)的主要內(nèi)容,人們已經(jīng)認(rèn)識(shí)到程序設(shè)計(jì)的實(shí)質(zhì)就是對(duì)所確定的問(wèn)題選擇一種好的結(jié)構(gòu),從而設(shè)計(jì)一種好的算法。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 1.2.2 數(shù)據(jù)結(jié)構(gòu)的基本概念和術(shù)語(yǔ)數(shù)據(jù)結(jié)構(gòu)的基本概念和術(shù)語(yǔ) 數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互形式,即數(shù)據(jù)的組織形式。數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)。邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系;存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)元素及其關(guān)系在計(jì)算機(jī)內(nèi)的表示。 數(shù)據(jù)是對(duì)客觀事物的符號(hào)表示,在計(jì)算機(jī)科學(xué)中是指輸入到計(jì)算機(jī)中并能夠被計(jì)算機(jī)識(shí)別、存儲(chǔ)和加工處理的符號(hào)的總稱。數(shù)據(jù)由數(shù)據(jù)項(xiàng)組成。 數(shù)據(jù)項(xiàng)(數(shù)據(jù)元素)是指具有獨(dú)立含義的最小識(shí)別單

9、位(數(shù)據(jù)中不可分割的最小單位)。數(shù)據(jù)項(xiàng)又稱項(xiàng)或字段。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 1.2.2 數(shù)據(jù)結(jié)構(gòu)的基本概念和術(shù)語(yǔ)數(shù)據(jù)結(jié)構(gòu)的基本概念和術(shù)語(yǔ) 數(shù)據(jù)項(xiàng)有邏輯形式(logical form)和物理形式(physical form)兩個(gè)方面。用ADT給出的數(shù)據(jù)項(xiàng)的定義是它的邏輯形式,數(shù)據(jù)結(jié)構(gòu)中對(duì)數(shù)據(jù)項(xiàng)的實(shí)現(xiàn)是它的物理形式。 在存儲(chǔ)結(jié)構(gòu)中包括了數(shù)據(jù)元素的表示和數(shù)據(jù)元素之間的關(guān)系表示。 數(shù)據(jù)元素存儲(chǔ)在計(jì)算機(jī)中,計(jì)算機(jī)中表示信息的最小單位是二進(jìn)制數(shù)的一位,稱為位(bit),由若干位組成一個(gè)位串表示一個(gè)數(shù)據(jù)元素,稱為元素或結(jié)點(diǎn),也可以描述為結(jié)點(diǎn)是數(shù)據(jù)處理的數(shù)據(jù)單位,它可能是一條記錄或一個(gè)數(shù)據(jù)項(xiàng)或組合數(shù)據(jù)項(xiàng)。

10、 對(duì)應(yīng)結(jié)點(diǎn)定義根據(jù)結(jié)點(diǎn)所處位置的不同可以將表中的結(jié)點(diǎn)分為前趨和后繼結(jié)點(diǎn),對(duì)表中任意結(jié)點(diǎn),處于該結(jié)點(diǎn)之前的所有結(jié)點(diǎn)稱為該結(jié)點(diǎn)的前趨結(jié)點(diǎn),處于該結(jié)點(diǎn)之后的所有結(jié)點(diǎn)稱為該結(jié)點(diǎn)的后繼結(jié)點(diǎn),與之相鄰的前趨結(jié)點(diǎn)稱為直接前趨結(jié)點(diǎn),與之相鄰的后繼結(jié)點(diǎn)稱為直接后繼結(jié)點(diǎn);表中的第一個(gè)結(jié)點(diǎn)稱為開(kāi)始結(jié)點(diǎn),表中最后一個(gè)沒(méi)有后繼的結(jié)點(diǎn)稱為終端結(jié)點(diǎn)。數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 數(shù)據(jù)類型是指一個(gè)值的集合以及在這些值上定義的一組操作的總稱。 抽象數(shù)據(jù)類型(Abstract Data Type 簡(jiǎn)稱ADT)是指抽象數(shù)據(jù)組織和與之相關(guān)的操作。每一個(gè)操作由它的輸入和輸出定義。抽象數(shù)據(jù)類型的定義取決于它的一組邏輯特性,而與其在計(jì)算機(jī)內(nèi)的

11、表示和實(shí)現(xiàn)無(wú)關(guān)。 抽象數(shù)據(jù)類型可以定義為: (D,S,P) 其中D表示數(shù)據(jù)對(duì)象,S是D上的關(guān)系集,P是對(duì)D的基本操作集。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 ADT使用偽碼描述為: ADT抽象數(shù)據(jù)類型名 數(shù)據(jù)對(duì)象: 數(shù)據(jù)關(guān)系: 基本操作: ADT抽象數(shù)據(jù)類型名 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 算法+數(shù)據(jù)結(jié)構(gòu)=程序。其中數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)邏輯結(jié)構(gòu)和物理結(jié)構(gòu),算法是對(duì)數(shù)據(jù)運(yùn)算的描述。由此可見(jiàn)程序設(shè)計(jì)的實(shí)質(zhì)是對(duì)具體問(wèn)題選擇一種好的數(shù)據(jù)結(jié)構(gòu),再設(shè)計(jì)一個(gè)好的算法,而好的算法通常取決于實(shí)際問(wèn)題的數(shù)據(jù)結(jié)構(gòu)。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 1.5.1 算法及其性質(zhì)算法及其性質(zhì) 算法是指解決問(wèn)題的一種方法或者一個(gè)過(guò)程。一個(gè)問(wèn)題可以用

12、多種算法來(lái)解決,一個(gè)給定的算法解決一個(gè)特定的問(wèn)題。 數(shù)據(jù)結(jié)構(gòu)與算法之間存在著密切的關(guān)系??梢哉f(shuō)不了解施加于數(shù)據(jù)上的算法需求就無(wú)法決定數(shù)據(jù)結(jié)構(gòu);反之算法的結(jié)構(gòu)設(shè)計(jì)和選擇又依賴于作為其基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)。即數(shù)據(jù)結(jié)構(gòu)為算法提供了工具。算法是利用這些工具來(lái)實(shí)施解決問(wèn)題的最優(yōu)方案。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 1.5.1 算法及其性質(zhì)算法及其性質(zhì) 算法就是解決問(wèn)題的方法。 算法是解決某個(gè)特定問(wèn)題的一些指令的集合; 由人們組織起來(lái)加以準(zhǔn)備加以實(shí)施的有限的基本步驟。流程圖是圖形化的算法,程序是用計(jì)算機(jī)語(yǔ)言描述的算法。 在計(jì)算機(jī)領(lǐng)域內(nèi),一個(gè)算法實(shí)質(zhì)上是根據(jù)處理問(wèn)題的需要,在數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)的基礎(chǔ)上施加的一種

13、運(yùn)算。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 1.5.1 算法及其性質(zhì)算法及其性質(zhì) 一個(gè)完整的算法應(yīng)該滿足以下幾條性質(zhì): 正確性。算法必須完成所期望的功能,得到的結(jié)果必須是正確的。 確定性。組成算法的指令必須是清晰的、無(wú)二義性。也就是說(shuō)算法的每一個(gè)步驟都必須準(zhǔn)確定義。準(zhǔn)確定義是指所描述的行為必須是對(duì)人或機(jī)器而言是可讀的、可執(zhí)行的。每一步必須在有限的時(shí)間內(nèi)執(zhí)行完畢,同時(shí)必須是我們所力所能及的,能夠依賴于具體的工具來(lái)執(zhí)行的工序。 有窮性。算法必須在有限的步驟內(nèi)結(jié)束。如果一個(gè)算法由無(wú)限的步驟組成,該算法不可能有計(jì)算機(jī)程序?qū)崿F(xiàn)。 有效性。算法的指令必須具有可執(zhí)行性。 可終止性。算法必須可以終止,即不能進(jìn)入死循環(huán)。

14、 一個(gè)算法可以沒(méi)有輸入,但是至少應(yīng)該有一個(gè)輸出。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 1.5.2 算法描述的分析算法描述的分析 一、算法設(shè)計(jì)要求 正確性。算法設(shè)計(jì)應(yīng)滿足具體問(wèn)題的需求。它至少應(yīng)該包括對(duì)輸入、輸出及加工過(guò)程等的明確的無(wú)歧義性的描述?!罢_”涵義通常包含程序無(wú)語(yǔ)法錯(cuò)誤、程序能夠得到正確的結(jié)果、程序?qū)Σ缓戏ǖ臄?shù)據(jù)的輸入應(yīng)有滿足要求的結(jié)果。一般對(duì)程序的測(cè)試時(shí),以錄入不合法數(shù)據(jù)得到滿足要求的結(jié)果作為衡量程序是否合格的標(biāo)準(zhǔn)。 可讀性。算法主要是為了人的閱讀與交流,算法可讀性好有助于人對(duì)算法的理解。 健壯性。當(dāng)輸入非法的數(shù)據(jù)時(shí),算法能夠適當(dāng)?shù)刈鞒龇磻?yīng)或進(jìn)行處理,不會(huì)產(chǎn)生莫名其妙的輸出結(jié)果。 效率與低存

15、儲(chǔ)量需求。效率是指算法的執(zhí)行時(shí)間,一般對(duì)問(wèn)題的求解方法很多,執(zhí)行時(shí)間短的算法效率高。存儲(chǔ)量的需求是指算法執(zhí)行過(guò)程所需要的最大的存儲(chǔ)容量,存儲(chǔ)空間越小,則算法越好。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 1.5.2 算法描述的分析算法描述的分析 二、算法分析 算法的分析主要是指判斷算法的優(yōu)劣,判斷一個(gè)算法的好壞一般從兩個(gè)方面考慮,即從時(shí)間角度和從空間角度上衡量算法。一般算法分析從時(shí)間角度考慮的比較多。當(dāng)然判斷一個(gè)算法的好與壞,不能以時(shí)間或空間衡量簡(jiǎn)單化,而是根據(jù)實(shí)際情況綜合考慮。 度量一個(gè)程序的執(zhí)行時(shí)間通常有兩種方法: 事后統(tǒng)計(jì)方法。 事前分析估算的方法。 數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 1.5.2 算法描述的分

16、析算法描述的分析 將算法的求解問(wèn)題的輸入稱為問(wèn)題的規(guī)模,并用一個(gè)整數(shù)n表示。 在算法的每個(gè)步驟中,可能有若干條語(yǔ)句,而頻度就是指每條語(yǔ)句的執(zhí)行次數(shù)。一個(gè)算法的時(shí)間復(fù)雜度是指算法的時(shí)間耗費(fèi)。簡(jiǎn)單說(shuō),就是以一條基本語(yǔ)句的執(zhí)行時(shí)間為基本單位,該算法所有語(yǔ)句中總的基本語(yǔ)句的執(zhí)行次數(shù),就是該算法的時(shí)間耗費(fèi),它是該算法所求解的問(wèn)題規(guī)模n的函數(shù)。 當(dāng)問(wèn)題的規(guī)模n趨向無(wú)窮大時(shí),我們把時(shí)間復(fù)雜度的數(shù)量階稱為算法的漸進(jìn)時(shí)間復(fù)雜度。一般我們把漸進(jìn)時(shí)間復(fù)雜度稱為算法的時(shí)間復(fù)雜度,記做“O”(Order)。數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論 1.5.2 算法描述的分析算法描述的分析 算法的時(shí)間復(fù)雜度,記做“O”(Order),它

17、有嚴(yán)格的數(shù)學(xué)定義: 若T(n)和f(n)是定義在正整數(shù)集合上的兩個(gè)函數(shù),則T(n)O(f(n)表示存在正的常數(shù)C和n0,使得當(dāng)nn0時(shí)都滿足0T(n)C * f(n)。 空間復(fù)雜度(Space Complexity)類似于時(shí)間復(fù)雜度,是指該算法所耗費(fèi)的存儲(chǔ)空間,也是問(wèn)題規(guī)模n的函數(shù)。一般是指漸進(jìn)空間復(fù)雜度。記作: S(n)=O(f(n) 其中n是問(wèn)題的規(guī)模(大?。?數(shù)據(jù)結(jié)構(gòu)概論數(shù)據(jù)結(jié)構(gòu)概論MbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOdL9I6E3B0y(v%s

18、#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w*t!qYmVjSgOdL

19、aI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeNbJ8G4D1A-w*

20、t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL5D2A+x*u$rZnWkShPeMa

21、J7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v&s#pXlUibJ8G5D1A-w*t$qY

22、nVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9I6E3B+y$rZnWkThPeMaJ7G4

23、C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVk

24、SgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-

25、w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPd

26、MaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v&s#pXlUiRfNcK91A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!

27、qYmVjSgOdL9I6F3B0y)v%s#pXlUiQfNcG4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9IA+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B

28、0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B0y(v%r#oXlTiQfN

29、bK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOH5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v#oXlTiQfNbK8G5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcL9H6E2Bu$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論