数据结构和算法的基本概念
我們要想開發(fā)出高效率的軟件就要建立合適的數(shù)據(jù)結(jié)構(gòu)和設(shè)計(jì)較好的算法來提高程序執(zhí)行效率,而學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法的目的就是提高程序執(zhí)行效率。 “算法+數(shù)據(jù)結(jié)構(gòu)=程序”這是某位科學(xué)家的觀點(diǎn)。
首先是數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)有倆種1、邏輯結(jié)構(gòu)2、物理結(jié)構(gòu)。
數(shù)據(jù)與數(shù)據(jù)之間的邏輯結(jié)構(gòu)有三種:
1、 線性結(jié)構(gòu):結(jié)構(gòu)中的數(shù)據(jù)元素之間存在著一對(duì)一的線性關(guān)系。
除了第一個(gè)和最后一個(gè)數(shù)據(jù)元素外,每個(gè)數(shù)據(jù)元素只有一個(gè)前驅(qū)和一個(gè)后繼數(shù)據(jù)元素
2、 樹結(jié)構(gòu):結(jié)構(gòu)中的數(shù)據(jù)元素之間存在著一對(duì)多的層次關(guān)系。
除根結(jié)點(diǎn)外,每個(gè)數(shù)據(jù)元素只有一個(gè)前驅(qū)數(shù)據(jù)元素,可有0個(gè)或若干個(gè)后繼數(shù)據(jù)元素
3、 圖結(jié)構(gòu):結(jié)構(gòu)中的數(shù)據(jù)元素之間存在著多對(duì)多的任意關(guān)系。
每個(gè)數(shù)據(jù)元素可有0個(gè)或若干個(gè)前驅(qū)數(shù)據(jù)元素和0個(gè)或若干個(gè)后繼數(shù)據(jù)元素
物理結(jié)構(gòu):簡(jiǎn)述了數(shù)據(jù)與數(shù)據(jù)之間的邏輯結(jié)構(gòu)如何存儲(chǔ)在物理存儲(chǔ)器中。通常的存儲(chǔ)方式有倆種:一、數(shù)組的存儲(chǔ)結(jié)構(gòu)和順序表的存儲(chǔ)結(jié)構(gòu)。二、鏈表的存儲(chǔ)結(jié)構(gòu)。
算法是對(duì)一些特定問題的求解步驟的描述他的指令是有限的序列,每一條指令都是一個(gè)或多個(gè)操作,一個(gè)算法應(yīng)該具有以下五個(gè)重要特性:
⑴ 有窮性:一個(gè)算法應(yīng)包含有限個(gè)操作步驟。即一個(gè)算法在執(zhí)行若干個(gè)步驟之后應(yīng)該能夠結(jié)束,而且每一步都在有限時(shí)間內(nèi)完成
⑵ 確定性:算法中的每一步都必須有確切的含義,不能產(chǎn)生二義性。
⑶ 可行性:算法中的每一個(gè)步驟都應(yīng)該是能有效地執(zhí)行,并得到確定的結(jié)果。
⑷ 輸入:所謂輸入,是指在算法執(zhí)行時(shí),從外界取得必要的數(shù)據(jù)。計(jì)算機(jī)運(yùn)行程序的目的是為了進(jìn)行數(shù)據(jù)處理,在大多數(shù)情況下,這些數(shù)據(jù)需要通過輸入得到。有些情況下,數(shù)據(jù)已經(jīng)包含在算法中,算法執(zhí)行時(shí)不需要任何數(shù)據(jù),所以一個(gè)算法可以有零個(gè)或多個(gè)輸入。
⑸ 輸出:一個(gè)算法有一個(gè)或多個(gè)輸出,這是算法進(jìn)行數(shù)據(jù)處理后的結(jié)果。沒有輸出的算法是毫無意義的。
算法的這些特性可以約束程序設(shè)計(jì)人員正確地書寫算法,從而達(dá)到求解問題的預(yù)期效果。
還有就是算法設(shè)計(jì)的要求,算法設(shè)計(jì)的好壞關(guān)乎程序的執(zhí)行效率,算法的設(shè)計(jì)必須滿足下列四個(gè)要求:
⑴ 正確性: 正確性的含義是算法對(duì)于一切合法的輸入數(shù)據(jù)都能夠得出滿足要求的結(jié)果,事實(shí)上要驗(yàn)證算法的正確性是極為困難的,因?yàn)橥ǔG闆r下合法的輸入數(shù)據(jù)量太大,用窮舉法逐一驗(yàn)證是不現(xiàn)實(shí)的。所謂的算法正確性是指算法達(dá)到了測(cè)試要求。
⑵ 可讀性: 算法的可讀性是指人對(duì)算法閱讀理解的難易程度,可讀性高的算法便于交流,有利于算法的調(diào)試和修改。通常增加算法的可讀性是在書寫算法時(shí)采用按縮進(jìn)格式書寫、分模塊書寫等方法可增加算法的可讀性。
⑶ 健壯性: 對(duì)于非法的輸入數(shù)據(jù),算法能給出相應(yīng)的響應(yīng),而不是產(chǎn)生不可預(yù)料的后果。
⑷ 效率與低存儲(chǔ)量需求: 效率指的是算法的執(zhí)行時(shí)間。對(duì)于解決同一問題的多個(gè)算法,執(zhí)行時(shí)間短的算法效率高。存儲(chǔ)量需求指算法執(zhí)行過程中所需要的最大存儲(chǔ)空間。存儲(chǔ)量需求越小的算法效率越高。
好了,數(shù)據(jù)結(jié)構(gòu)和算法大概就是講這些東西,以上內(nèi)容大部分都是來自課程的
總結(jié)
以上是生活随笔為你收集整理的数据结构和算法的基本概念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 祝福的符文(卢恩符文祝福)
- 下一篇: 互联网的运输层