1.1學(xué)習(xí)意義
算法與數(shù)據(jù)結(jié)構(gòu)是為研究和解決如何有效地組織和處理非數(shù)值數(shù)據(jù)而產(chǎn)生的理論轨香、技術(shù)、方法仪或,是計(jì)算機(jī)科學(xué)的一門綜合性專業(yè)基礎(chǔ)課确镊,是后續(xù)課程的先修課。作為一名程序員范删,很有必要在這方面下足功夫蕾域。
1.2 基本概念和術(shù)語(yǔ)
數(shù)據(jù)是客觀事物的數(shù)字化表示,是被計(jì)算機(jī)加工處理的對(duì)象到旦。
數(shù)據(jù)元素是數(shù)據(jù)的基本單位旨巷,是數(shù)據(jù)集合中的一個(gè)個(gè)體。一個(gè)數(shù)據(jù)元素可由若干個(gè)數(shù)據(jù)項(xiàng)組成添忘,數(shù)據(jù)項(xiàng)是不可分割的最小單位采呐。
數(shù)據(jù)對(duì)象是性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個(gè)子集搁骑。
數(shù)據(jù)結(jié)構(gòu)是帶結(jié)構(gòu)的數(shù)據(jù)元素的集合斧吐,即數(shù)據(jù)結(jié)構(gòu)=(D, S, Op),其中D為數(shù)據(jù)元素集合仲器,S為D上的關(guān)系煤率,Op為定義在D上的運(yùn)算。
1.3 邏輯結(jié)構(gòu)
邏輯結(jié)構(gòu)指數(shù)據(jù)元素之間的邏輯關(guān)系乏冀,與計(jì)算機(jī)無(wú)關(guān)涕侈。邏輯結(jié)構(gòu)可分為四種:集合結(jié)構(gòu)、線性結(jié)構(gòu)煤辨、樹形結(jié)構(gòu)裳涛、圖狀結(jié)構(gòu)。
1.4 操作
不同的數(shù)據(jù)結(jié)構(gòu)有不同的操作集合众辨,這些操作可以分為四類:
1.構(gòu)造函數(shù)端三、析構(gòu)函數(shù);
2.詢問(wèn)類操作(判斷是否為空鹃彻、求長(zhǎng)度等)郊闯;
3.查找類操作(查找元素位置、遍歷);
4.添加和刪除操作团赁。
1.5存儲(chǔ)結(jié)構(gòu)
存儲(chǔ)結(jié)構(gòu):數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)器中的映象表示育拨。四種不同的存儲(chǔ)結(jié)構(gòu):
1.順序存儲(chǔ):數(shù)據(jù)元素依次存放在連續(xù)的存儲(chǔ)單元中;
2.鏈?zhǔn)酱鎯?chǔ):在存儲(chǔ)節(jié)點(diǎn)中增加若干指針域欢摄,記錄后繼或者相關(guān)結(jié)點(diǎn)的地址熬丧;
3.索引存儲(chǔ):將元素分為若干子表,子表的開(kāi)始位置存放在索引表中怀挠;
4.散列存儲(chǔ):根據(jù)數(shù)據(jù)元素的關(guān)鍵字值析蝴,由散列函數(shù)計(jì)算出存儲(chǔ)地址。
1.6 算法的基本概念
算法的重要特性:有窮性绿淋、確定性闷畸、可行性、輸入吞滞、輸出佑菩。
評(píng)價(jià)算法的基本標(biāo)準(zhǔn):正確性、可讀性裁赠、健壯性倘待、高效性。
時(shí)間復(fù)雜度:根據(jù)語(yǔ)句頻度來(lái)計(jì)算组贺。
for(i=1; i<=n; i++) //頻度n
for(j=1; j<=n; j++) //頻度n*(n+1)
{
c[i][j]=0; //頻度n^2
for(k=1; k<=n; k++) //頻度n^2*(n+1)
c[i][j]=c[i][j]+a[i][k]*b[k][j]; //頻度n^3
}
該算法中所有語(yǔ)句的頻度之和,矩陣階數(shù)n的函數(shù)祖娘,可用f(n)表示失尖。