用計算機求解任何問題都離不開程式設計,程式設計的實質是資料表示和資料處理。
一,資料結構基本概念
1.資料是資訊的載體,是電腦程式處理的原料。
可以將資料分為兩大類:一類是整數實數等數值資料,一類是文字,影象聲音,圖形等非數值資料。
資料元素是資料的基本單位,在電腦程式中通常作為乙個整體進行考慮和處理。構成資料元素的不可分割的最小單位稱為資料項。
資料結構是指相互之間存在一定關係的資料元素的集合。資料元素是討論資料結構時涉及的最小的資料單位。按視點不同,資料結構分為邏輯結構和儲存結構。
資料的邏輯結構是指資料元素之間邏輯關係的整體。根據資料元素之間的邏輯關係的不同,資料結構分為四類:
(1)集合:資料元素之間就是屬於乙個集合。
(2)線性結構:資料元素之間存在著一對一的線性關係。
(3)樹結構:資料元素之間存在著一對多的層次關係。
(4)圖結構:資料元素之間存在著多對多的任意關係。
資料的儲存結構通常有兩種,順序儲存結構和鏈結儲存結構。
資料型別是一組值的集合以及定義於這個值集上的一組操作的總稱。
抽象資料型別是乙個資料結構以及定義在該結構上的一組操作的總稱。
(二)演算法及演算法分析
1,演算法是對特定問題求解步驟的一種描述,是指令的有限序列。
演算法必須滿足5個重要特性:輸入,輸出,有窮性,確定性,可行性。
乙個「好」演算法還要具備:正確性,魯棒性,簡單性,抽象分級,高效性。
魯棒性:也稱健壯性。演算法對非法輸入的抵抗能力,即對於錯誤的輸入,演算法能夠識別並作出處理,而不是產生錯誤動作或者陷入癱瘓。
常用的描述演算法的方法有:自然語言,流程圖,程式語言和偽**等。
(1)自然語言:優點是容易理解,缺點是容易出現二義性,並且演算法很冗長。
(2)流程圖:優點是直觀易懂,缺點是嚴密性不如程式語言,靈活性不如自然語言。
(3)程式語言描述的演算法能由計算機直接執行,而缺點是抽象性差,是演算法設計者拘泥於描述演算法的具體細節,忽略了好演算法和正確邏輯的重要性。
(4)偽**是介於自然語言和程式語言之間的方法,它採用某一程式語言的基本語法,操作指令可以結合自然語言來設計。
2.度量演算法效率的方法
(1)事後統計,先將演算法實現,然後輸入適當資料執行,測算其時間和空間開銷。
缺點:編寫程式實現演算法將花費較多的時間和精力。所得實驗結果依賴於計算機軟硬體等環境因素,有時容易掩蓋演算法本身的優劣。
(2)事前分析估算,漸進複雜度。
演算法的時間複雜度,只考察當問題規模充分大時,演算法中基本語句的執行次數在漸進意義下的階。通常用大o記號表示。
演算法的空間複雜度是指在演算法的執行過程中,需要的輔助空間數量。輔助空間是除演算法本身和輸入輸出資料所佔的空間外,演算法臨時開闢的儲存空間。
通常記作:s(n)=o(f(n))
其中n為問題規模。
資料結構第一章緒論
緒論主要是對計算機資料結構一書有大致了解,系統的講解資料結構在程式結構的應用,資料結構的相關概念,演算法在程式中的應用,從而從巨集觀上了解資料結構,更有利於以後學習。1 資料結構在程式中的應用 其實乙個公式就可以了解程式和演算法還有資料,即資料結構 演算法 程式,由公式可知資料結構是程式的一部分。2...
資料結構 第一章 緒論
程式設計的實質是資料表示和資料處理。資料要能被計算機處理,首先必須能夠儲存在計算機的記憶體中,這項任務稱為資料表示,其核心是資料結構 乙個實際問題的求解必須滿足各項處理要求,這項任務稱為資料處理,其核心是演算法。資料結構課程主要是討論資料表示和資料處理的基本方法。1.1 1.2 1 資料的邏輯結構 ...
第一章 資料結構緒論
本文章作為學習筆記,大量參考了 大話資料結構 這本書,因為沒有用於商業活動,而且也算是為作者做了乙個小小的宣傳,作者應該不會告我侵權,哈。資料結構的概念 是相互之間存在的一種或多種特定關係的資料元素的集合。學了半天這個概念得知道吧!資料結構有什麼用?如果你想走程式設計師的道路,如果你不想一輩子搬磚,...