小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

數(shù)據(jù)結(jié)構(gòu)與算法概論

 xiaoyimin 2019-01-31

J數(shù)據(jù)結(jié)構(gòu)與算法概論

一、基本概念

數(shù)據(jù):描述客觀事物的數(shù)、字符以及能輸入計算機(jī)中并被計算機(jī)處理的符號集合

數(shù)據(jù)元素:是數(shù)據(jù)的基本單位。有時一個數(shù)據(jù)元素可由若干個數(shù)據(jù)項(也稱為字段、域、屬性)組成。

數(shù)據(jù)對象:是具有相同性質(zhì)的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個子集。

數(shù)據(jù)項:是具有獨立含義的最小標(biāo)識單位

數(shù)據(jù)結(jié)構(gòu):帶有結(jié)構(gòu)的數(shù)據(jù)元素的集合。結(jié)構(gòu)指的是數(shù)據(jù)元素之間的相互關(guān)系,即數(shù)據(jù)的組織形式,結(jié)構(gòu)中的數(shù)據(jù)元素稱為結(jié)點。

二、邏輯結(jié)構(gòu)和物理結(jié)構(gòu)

傳統(tǒng)上,我們把數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和物理結(jié)構(gòu)

邏輯結(jié)構(gòu):數(shù)據(jù)對象中數(shù)據(jù)元素之間的邏輯(或抽象)關(guān)系。

①集合結(jié)構(gòu):數(shù)據(jù)元素除了同屬于一個集合外,他們之間沒有其他不三不四的關(guān)系。


集合結(jié)構(gòu).png

②線性結(jié)構(gòu):數(shù)據(jù)元素之間是一對一的關(guān)系。


線性結(jié)構(gòu).png

③樹形結(jié)構(gòu):數(shù)據(jù)元素之間存在一種一對多的層次關(guān)系。


樹形結(jié)構(gòu).png

④圖形結(jié)構(gòu):數(shù)據(jù)元素時多對多的關(guān)系。


圖形結(jié)構(gòu).png

物理結(jié)構(gòu)(存儲結(jié)構(gòu)):數(shù)據(jù)元素及其關(guān)系在計算機(jī)內(nèi)的存儲方式。

①順序存儲:是把數(shù)據(jù)元素存放在地址連續(xù)的存儲單元里,其數(shù)據(jù)間的邏輯關(guān)系和物理關(guān)系是一致的。例如我們編程語言的數(shù)組結(jié)構(gòu)。


順序存儲.png

②鏈?zhǔn)酱鎯Γ菏前褦?shù)據(jù)元素存放在任意的存儲單元里,這組存儲單元可以是連續(xù)的,也可以是不連續(xù)的。


鏈?zhǔn)酱鎯?png

很顯然,這樣說的話鏈?zhǔn)酱鎯Y(jié)構(gòu)的數(shù)據(jù)元素存儲關(guān)系并不能反映其邏輯關(guān)系,因此需要用一個指針存放數(shù)據(jù)元素的地址,這樣子通過地址就可以找到相關(guān)聯(lián)數(shù)據(jù)元素的位置。

③索引存儲:通常是在存儲信息的同時,還建立附加的索引表。表中的索引項一般形式是:(關(guān)鍵字,地址)。關(guān)鍵字是能唯一標(biāo)識一個元素的一個數(shù)據(jù)項或多個數(shù)據(jù)項的組合。

④散列存儲:基本思想是根據(jù)元素的關(guān)鍵字直接計算出該元素的存儲地址。

三、算法

實現(xiàn):1+2+…+99+100

方式一:

int i, sum = 0, n = 100;for(i=1; i = n; i++)

{

sum = sum + i;

}printf(“%d”, sum);

方式二:

int i, sum = 0, n = 100;

sum = (1+n)*n/2;printf(“%d”, sum);

1.什么是算法

算法是解決特定問題求解步驟的描述,在計算機(jī)中表現(xiàn)為指令的有限序列,并且每條指令表示一個或多個操作。

2.算法的五個基本特性

①輸入:算法具有零個或多個輸入。

②輸出:算法至少有一個或多個輸出。輸出的形式可以是打印形式輸出,也可以是返回一個值或多個值等。

③有窮性:指算法在執(zhí)行有限的步驟之后,自動結(jié)束而不會出現(xiàn)無限循環(huán),并且每一個步驟在可接受的時間內(nèi)完成。

④確定性:

算法的每一個步驟都具有確定的含義,不會出現(xiàn)二義性。

算法在一定條件下,只有一條執(zhí)行路徑,相同的輸入只能有唯一的輸出結(jié)果。

算法的每個步驟都應(yīng)該被精確定義而無歧義。

⑤可行性:算法的每一步都必須是可行的,也就是說,每一步都能夠通過執(zhí)行有限次數(shù)完成。

3.算法設(shè)計的要求

①正確性:算法的正確性是指算法至少應(yīng)該具有輸入、輸出和加工處理無歧義性、能正確反映問題的需求、能夠得到問題的正確答案。

②可讀性:算法設(shè)計另一目的是為了便于閱讀、理解和交流。

③健壯性:當(dāng)輸入數(shù)據(jù)不合法時,算法也能做出相關(guān)處理,而不是產(chǎn)生異常、崩潰或莫名其妙的結(jié)果。

④時間效率高和存儲量低:好算法應(yīng)該具備時間效率高和存儲量低的特點。所以在設(shè)計算法的時候我們應(yīng)該盡量思考這兩方面的問題!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多