2017計(jì)算機(jī)應(yīng)用基礎(chǔ)知識(shí)_第1頁(yè)
2017計(jì)算機(jī)應(yīng)用基礎(chǔ)知識(shí)_第2頁(yè)
2017計(jì)算機(jī)應(yīng)用基礎(chǔ)知識(shí)_第3頁(yè)
2017計(jì)算機(jī)應(yīng)用基礎(chǔ)知識(shí)_第4頁(yè)
2017計(jì)算機(jī)應(yīng)用基礎(chǔ)知識(shí)_第5頁(yè)
已閱讀5頁(yè),還剩1頁(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)介

2017計(jì)算機(jī)應(yīng)用基礎(chǔ)知識(shí)1.1數(shù)據(jù)結(jié)構(gòu)與算法?借助于計(jì)算機(jī)解決問(wèn)題,首先需要了解所處理對(duì)象的性質(zhì)和特點(diǎn)即所操作對(duì)象的數(shù)據(jù)結(jié)構(gòu),然后再設(shè)計(jì)解決問(wèn)題的方法和步驟即設(shè)計(jì)一個(gè)合理的算法,即通常所說(shuō)的“程序=數(shù)據(jù)結(jié)構(gòu)+算法”。?1.1.1算法的基本概念?“算法”(Algorithm)一詞最早來(lái)自公元9世紀(jì)波斯數(shù)學(xué)家比阿勒·20世紀(jì)的英國(guó)數(shù)學(xué)家圖靈提出了著名的圖靈論點(diǎn),并抽象出了一臺(tái)機(jī)器,這臺(tái)機(jī)器被我們稱之為圖靈機(jī)。圖靈的思想對(duì)算法的發(fā)展起到了重要的作用。一般來(lái)說(shuō),算法是指完成一個(gè)任務(wù)或解決一個(gè)問(wèn)題所需要的具體步驟和方法的描述。在這里我們說(shuō)的算法是指計(jì)算機(jī)能執(zhí)行的算法。?1.算法分類?計(jì)算機(jī)算法可分為兩大類,一類是數(shù)值運(yùn)算算法,另一類是非數(shù)值運(yùn)算算法。數(shù)值運(yùn)算算法主要是求數(shù)值解,如求方程的解、求函數(shù)的定積分等,非數(shù)值運(yùn)算的范圍則非常廣泛,如人事管理、圖書檢索等。?2.算法特征?一個(gè)科學(xué)的算法必須具備以下特征:?(1)有窮性:一個(gè)算法必須保證執(zhí)行有限步之后結(jié)束,而不能是無(wú)限的。這是顯而易見的。更進(jìn)一步說(shuō),有窮性是指在合理的范圍內(nèi)結(jié)束運(yùn)算,如果一個(gè)算法需計(jì)算機(jī)執(zhí)行幾百年或更長(zhǎng)時(shí)間才結(jié)束,這顯然是不合理的。?(2)確定性:算法的每一步驟必須有確切的定義而不能模棱兩可,算法中不能出現(xiàn)諸如“一個(gè)比較大的數(shù)”等模糊描述。?(3)有零個(gè)或多個(gè)輸入?(4)有一個(gè)或多個(gè)輸出。算法的目的是為了解決問(wèn)題,一個(gè)沒(méi)有輸出的算法是不能解決任何問(wèn)題因而它是沒(méi)有意義的.?(5)有效性。算法中的每一個(gè)步驟都都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果。例如,若n=0則執(zhí)行m/n是無(wú)法有效執(zhí)行的。?3.算法表示?一個(gè)計(jì)算機(jī)算法可以用自然語(yǔ)言、流程圖、N-S圖等來(lái)表示。?4.算法分析?算法分析的任務(wù)是對(duì)設(shè)計(jì)出的每一個(gè)具體的算法,利用數(shù)學(xué)工具,討論各種復(fù)雜度,以探討某種具體算法適用于哪類問(wèn)題,或某類問(wèn)題宜采用哪種算法。?算法的復(fù)雜度分時(shí)間復(fù)雜度和空間復(fù)雜度。?.時(shí)間復(fù)雜度:在運(yùn)行算法時(shí)所耗費(fèi)的時(shí)間為f(n)(即n的函數(shù))。?.空間復(fù)雜度:實(shí)現(xiàn)算法所占用的空間為g(n)(也為n的函?稱O(f(n))和O(g(n))為該算法的復(fù)雜度。?1.1.2數(shù)據(jù)結(jié)構(gòu)的定義?數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)與技術(shù)領(lǐng)域上廣泛被使用的術(shù)語(yǔ)。盡管它至今還未有一個(gè)被一致公認(rèn)的定義,但其內(nèi)容是大家一致公認(rèn)的。它用來(lái)反映一個(gè)數(shù)據(jù)的內(nèi)部構(gòu)成,即一個(gè)數(shù)據(jù)由那些成分?jǐn)?shù)據(jù)構(gòu)成,以什么方式構(gòu)成,呈什么結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)有邏輯上的數(shù)據(jù)結(jié)構(gòu)和物理上的數(shù)據(jù)結(jié)構(gòu)之分。邏輯上的數(shù)據(jù)結(jié)構(gòu)反映成分?jǐn)?shù)據(jù)之間的邏輯關(guān)系,而物理上的數(shù)據(jù)結(jié)構(gòu)反映成分?jǐn)?shù)據(jù)在計(jì)算機(jī)內(nèi)部的存儲(chǔ)安排。數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)存在的形式。?數(shù)據(jù)結(jié)構(gòu)是信息的一種組織方式,其目的是為了提高算法的效率,它通常與一組算法的集合相對(duì)應(yīng),通過(guò)這組算法集合可以對(duì)數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)進(jìn)行某種操作。?一般數(shù)據(jù)結(jié)構(gòu)可采用下面兩類主要的存儲(chǔ)方式,大多數(shù)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)表示都采用其中的一類方式,或兩類方式的結(jié)合。?1.順序存儲(chǔ)結(jié)構(gòu)?這種存儲(chǔ)方式的主要用于線性數(shù)據(jù)結(jié)構(gòu),它把邏輯上相鄰的數(shù)據(jù)元素存儲(chǔ)在物理上相鄰的存儲(chǔ)單元內(nèi),結(jié)點(diǎn)之間的關(guān)系由存儲(chǔ)單元的鄰接關(guān)系來(lái)實(shí)現(xiàn)。?順序存儲(chǔ)結(jié)構(gòu)的主要特點(diǎn)是:(1)結(jié)點(diǎn)中只有自身信息域,沒(méi)有連接信息域,因此存儲(chǔ)密度大,存儲(chǔ)空間利用率高;(2)可以通過(guò)計(jì)算直接確定數(shù)據(jù)結(jié)構(gòu)中第i個(gè)結(jié)點(diǎn)的存儲(chǔ)地址Li,計(jì)算公式為L(zhǎng)i=L0+(i-1)*m,其中L0為第一個(gè)結(jié)點(diǎn)的存儲(chǔ)地址,m為每個(gè)結(jié)點(diǎn)所占用的存儲(chǔ)單元個(gè)數(shù);(3)插入、刪除運(yùn)算不便,會(huì)引起大量結(jié)點(diǎn)的移動(dòng)。?2.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)?鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)就是在每個(gè)結(jié)點(diǎn)中至少包括一個(gè)指針域,用指針來(lái)體現(xiàn)數(shù)據(jù)元素之間邏輯上的聯(lián)系。這種存儲(chǔ)結(jié)構(gòu)可把邏輯上相鄰的兩個(gè)元素存放在物理上不相鄰的存儲(chǔ)單元中;還可以在線性編址的計(jì)算機(jī)存儲(chǔ)器中表示結(jié)點(diǎn)之間的非線性聯(lián)系。?鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的主要特點(diǎn)是:(1)結(jié)點(diǎn)中除自身外,還有表示連接信息的指針域,因此比順序結(jié)構(gòu)的存儲(chǔ)密度小,存儲(chǔ)空間利用率低;(2)邏輯上相鄰的結(jié)點(diǎn)物理上不必鄰接,可用于線性表、樹、圖等多種邏輯結(jié)構(gòu)的存儲(chǔ)表示;(3)插入、刪除操作靈活方便,不必移動(dòng)結(jié)點(diǎn),只要改變結(jié)點(diǎn)中的指針即可。?除上述兩種主要存儲(chǔ)方式外,散列法也是在線性表和集合的存儲(chǔ)表示中常用的一種存儲(chǔ)方式。?1.1.3線性表結(jié)構(gòu)?1.線性表的定義?線性表(LinearList)是最常用并且最簡(jiǎn)單的一種數(shù)據(jù)結(jié)構(gòu)。它是由n(n≥0)個(gè)數(shù)據(jù)元素(結(jié)點(diǎn))a1,a2,…,an組成的有限序列。?①數(shù)據(jù)元素的個(gè)數(shù)n定義為表的長(zhǎng)度(n=0?②將非空的線性表(n>0)記作:(a1,a2,…,an)?③數(shù)據(jù)元素ai(1≤i≤n)只是個(gè)抽象符號(hào),其具體含義在不同情況下可以不同。?在一些比較復(fù)雜的線性表中,一個(gè)數(shù)據(jù)元素可以由若干個(gè)數(shù)據(jù)項(xiàng)組成。在這種情況下,一般把數(shù)據(jù)元素稱為記錄,含有大量記錄的線性表也稱為文件。?例1英文字母表(A,B,…,Z)是線性表,表中每個(gè)字母是一個(gè)數(shù)據(jù)元素(結(jié)點(diǎn))例2一副撲克牌的點(diǎn)數(shù)(2,3,…,10,J,Q,K,A)也是一個(gè)線性表,其中數(shù)據(jù)元素是每張牌的點(diǎn)數(shù)?2.線性表的存儲(chǔ)?線性表可采用順序方式存儲(chǔ)和鏈?zhǔn)椒绞酱鎯?chǔ)。在各種高級(jí)語(yǔ)言中的一維數(shù)組就是用順序方式存儲(chǔ)的線性表,因此也常用一維數(shù)組來(lái)稱呼順序表。下面主要討論的線性表對(duì)象是指順序表。?3.線性表的基本操作?線性表是一種相當(dāng)靈活的數(shù)據(jù)結(jié)構(gòu),不僅對(duì)它的數(shù)據(jù)元素可以查找訪問(wèn),它的長(zhǎng)度也可以根據(jù)需要增大或縮小,即可對(duì)線性表進(jìn)行插入和刪除數(shù)據(jù)元素運(yùn)算。?常見的線性表的基本運(yùn)算?(1)InitList(L)?構(gòu)造一個(gè)空的線性表L,即表的初始化。?(2)ListLength(L)?求線性表L中的結(jié)點(diǎn)個(gè)數(shù),即求表長(zhǎng)。?(3)GetNode(L,i)?取線性表L中的第i個(gè)結(jié)點(diǎn),這里要求1≤i≤ListLength(L)?(4)LocateNode(L,x)?在L中查找值為x的結(jié)點(diǎn),并返回該結(jié)點(diǎn)在L中的位置。若L中有多個(gè)結(jié)點(diǎn)的值和x相同,則返回首次找到的結(jié)點(diǎn)位置;若L中沒(méi)有結(jié)點(diǎn)的值為x,則返回一個(gè)特殊值表示查找失敗。?(5)InsertList(L,x,i)?在線性表L的第i個(gè)位置上插入一個(gè)值為x的新結(jié)點(diǎn),使得原編號(hào)為i,i+1,…,n的結(jié)點(diǎn)變?yōu)榫幪?hào)為i+1,i+2,…,n+1的結(jié)點(diǎn)。這里1≤i≤n+1,而n是原表L的長(zhǎng)度。插入后,表L的長(zhǎng)度加1。?(6)DeleteList(L,i)?刪除線性表L的第i個(gè)結(jié)點(diǎn),使得原編號(hào)為i+1,i+2,…,n的結(jié)點(diǎn)變成編號(hào)為i,i+1,…,n-1的結(jié)點(diǎn)。這里1≤i≤n,而n是原表L的長(zhǎng)度。刪除后表L的長(zhǎng)度減1。具體程序?qū)崿F(xiàn)可參考本書C語(yǔ)言相關(guān)章節(jié)。?1.1.4棧與隊(duì)列結(jié)構(gòu)?1.棧與隊(duì)列的定義?棧是一種限定僅在表的一端進(jìn)行插入與刪除操作的線性表。允許進(jìn)行插入與刪除操作的這一端稱為棧頂,而另一端稱為棧底,不含元素的空表稱為空棧,插入與刪

溫馨提示

  • 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)論