資料結構1 基礎定義

2021-09-19 15:43:53 字數 1252 閱讀 2220

程式=資料結構+演算法

資料結構:

基於c語言來說,c只給出了一些基本的資料型別,如int,char等, 但處理複雜問題時,只用這些基本的資料型別很難設計出高效的演算法去解決問題,比如 設計乙個學生資訊管理系統,乙個學生的資訊包括 學號,姓名,性別,籍貫,專業,等等,學號是數字,其他的是字元,如果乙個乙個定義會十分麻煩,但他們都有抽象意義的聯絡,所以如果能夠定義乙個包含這些所有資訊的資料,那麼就會十分方便,所以我們可以用結構體來構造這樣乙個包含學生所有個人資訊的資料。

綜上,通俗來說:資料結構就是利用結構體將幾個資料聯絡組合在一起形成的乙個整體。

資料結構又分兩個方面:

1.邏輯結構 2.儲存結構

任何資料本身都沒有含義,比如 2000,2000本身只是乙個數,但2023年是年份,2000元,是錢,資料所表達的含義是我們從邏輯上賦予的。

邏輯結構:就是從抽象的邏輯關係上描述資料,比如, 在教室裡,a和b是乙個小組的,他們是乙個小組的,這個關係,就是邏輯結構, 但是 他們倆在教室的位置離的很遠,他們的位置就屬於儲存結構,也可以說是物理結構。

邏輯結構分 線性和非線性的,資料之間,邏輯關係是一對一的都是線性結構,一對多的都是非線性結構。

儲存結構分 順序儲存結構和鏈式儲存結構 順序儲存結構就是把所有元素依次存放在一片連續的儲存空間中,鏈式儲存結構是借助於指標將儲存元素的空間串聯起來。

演算法:演算法的定義是:演算法是為了解決某類問題而規定的乙個有限長的操作序列。演算法需要滿足五個特性:有窮性,確定性,可行性,輸入,輸出。

評價演算法優劣的標準: 正確性,可讀性,健壯性,高效性。

通俗來說,演算法就是解決問題的一種方法。

演算法有兩個複雜度

時間複雜度:

可以直接理解為,此演算法處理問題的快慢,或者處理資料的多少。

假設計算機處理資料的基本操作所用時間都是1,如果對於乙個演算法來說:輸入1000個資料得到正確答案所用時間為1000,即此演算法處理了1000個資料或1000次資料,輸入n個,則處理n個/次,耗時n,如果另一種演算法求解相同的問題,輸入1000個資料卻只用處理500個資料就能得到正確答案,則第二種演算法的效率更高。

如果用符號來表示  則: 如果對於乙個演算法,輸入n個資料,此演算法中運算次數最多的語句運算了m次,則時間複雜度為o(m)如果m為常數則規定為o(1).

如:for(i=0;i空間複雜度:

簡單理解為求解問題所需儲存資料的多少。

s(n)=o( f (n) )

一般來說,如果演算法執行操作時所需要的儲存空間對於輸入資料量來說是常數,則該稱該演算法原地工作,空間複雜度為o(1)

資料結構基礎定義

資料項 資料元素 資料物件 資料 資料物件 結構 資料結構 資料結構包括以下幾個方面 1.資料的邏輯結構 數學模型 2.資料的儲存結構 物理結構 3.資料的運算 所以資料結構是帶結構的資料元素的集合 資料型別是乙個值的集合及其一組操作 集合線性結構 一對一 樹形結構 一對多 圖形結構 多對多 堆結構...

資料結構基礎1

資料結構是計算機儲存 組織資料的方式。好的資料結構可以帶來更高的執行或者儲存效率,資料結構往往同檢索演算法和索引技術有關。乙個資料結構的設計過程分成抽象層 資料結構層和實現層。其中,抽象層是指抽象資料型別層,它討論資料的邏輯結構及其運算,資料結構層和實現層討論乙個資料結構的表示和在計算機內的儲存細節...

資料結構基礎1 陣列

前言 線性表的陣列描述,在物理空間上連續儲存,利用索引隨機讀取元素。線性表 也稱為有序表,形如 e0,e1,e2.en 1 n為有窮自然數,可以認為e0先於e1,e1先於e2,除了這種先後關係,線性表不再有其他關係。題目 給定兩個有序整數陣列nums1和nums2,將它們合併成新的有序陣列nums3...