資料結構1 概論

2021-08-02 14:47:45 字數 1567 閱讀 5892

資料結構是所有演算法的基礎,只有精通於資料結構才能深入學習演算法從而在現有演算法的基礎上進行優化、創新。

1、基本概念

資料、資料元素、資料項:資料項(字段、屬性、域)組成資料元素(元素、記錄、節點、頂點);資料元素組成資料。

資料結構:顧名思義資料的結構 通俗一點就是:資料在計算機中怎麼儲存的 是以怎樣的組織結構儲存的 他們之間有何關係 怎麼操作這些資料。

邏輯結構:

線性結構:一頭一尾 直線型 無分叉 (線性表、棧、佇列、串)

非線性結構:有分叉(多維陣列、樹、圖)

儲存結構:

順序儲存:相鄰 依次儲存 (陣列)

索引儲存:附加儲存索引表 一對一的成稠密索引 一對多的稱稀疏索引(指向開始位置)

雜湊儲存:根據記錄(節點)關鍵字計算儲存位置

案例:田徑賽程安排

姓名專案1

專案2專案3甲跳高

跳遠100公尺乙標槍

鉛球丙標槍100公尺

200公尺丁鉛球

200公尺跳高戊

跳遠200公尺

要求最短時間內完成比賽

這裡我們使用資料結構中的無向**決該問題:

首先將6個比賽專案設為6個點,任何乙個運動員參加的專案不能同時進行,我們將其連線起來

得到如下圖形:

然後依次對上圖中相互之間沒有連線的專案(頂點)著同一顏色(已經著色的不需要再次參與著色),意思就是沒有人同時參加的專案可以同時進行, 首先我們看到跳高和標槍之間沒有連線(使用紅色); 鉛球和跳遠之間沒有連線(使用黃色);剩下的就是100公尺和200公尺,他們之間有連線所以分別使用藍色和綠色。由此得到下圖:

由此我們可以得到最省時間的賽程為:跳高與標槍同時進行;跳遠與鉛球同時進行;100公尺、200公尺單獨進行。

【個人觀點】此示例沒有考慮每項比賽實際上使用的時間長短,現實生活中可能會出現乙個運動員的兩項比賽同時進行,參與完一項另一項比賽可能還沒有輪到你上場。。。。哈哈多執行緒程式以及分布式程式裡也存在這種情況 誰閒著誰去幹。大家理解這個思想就好,沒必要鑽這個牛角尖。

演算法複雜度:時間複雜度、空間複雜度,一般情況下時間複雜度比較重要(也就是程式執行時間)。

常見時間複雜度:常數階o(1)、對數階o(log2n)、線性階o(n)、線性對數階o(nlog2n)、平方階o(n2)、立方階o(n3)、...、k次方階o(nk)、指數階o(2n)。

演算法中包含迴圈的以最內層的迴圈次數計算演算法時間複雜度(理論最長時間)。

1 資料結構概論

資料結構在我學的這些計算機的知識中,我認為是最重要的。然而資料結構的課程學了才乙個學期,就發現很多資料結構的東西就已經忘記了一部分。這次通過寫一套資料結構來複習一下資料結構,也方便以後檢視。首先,在概論這裡我們的理清楚幾個概念 以二進位制的形式被計算機所識別 儲存和加工處理。2.資料元素 data ...

資料結構概論

資料是資訊的載體,是描述客觀事物的數 字元 以及其他能夠記錄承載資訊的並且能夠被計算機讀入 識別以及處理的符號集合。為了有效的組織資料,也為了能夠更加方便的使用資料我們引入資料結構這一概念 資料結構由某一資料元素的集合和該集合中各個資料相互之間的關係組成。記為 圖1.資料結構示意圖 一句資料元素之間...

資料結構概論

一 資料結構 是相互之間存在一種或多種特定關係的資料元素的集合。資料機構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。1968年,美國的高德納在其所寫的 計算機程式設計藝術 中第一次較為系統的闡述了資料的邏輯結構和儲存結構及其操作。這個時候,資料結構才算是...