資料結構和演算法概述

2021-09-12 00:03:17 字數 1943 閱讀 8271

1.什麼是資料結構,什麼是演算法

資料結構指一組資料的儲存結構。演算法就是運算元據的一組方法。

2.常用的資料結構

陣列、鍊錶、棧、佇列、雜湊表、二叉樹、堆、跳表、圖、trie 樹。

3.常用的演算法

遞迴、排序、二分查詢、搜尋、雜湊演算法、貪心演算法、分治演算法、回溯演算法、動態規劃、字串匹配演算法

4.資料結構的分類

4.1 資料的邏輯結構

資料與資料之間的聯絡被稱為資料的邏輯結構 ,根據關係的緊密程度,邏輯結構被分為四種

4.1.1 集合

資料結構中的元素之間除了「同屬乙個集合」 的相互關係外,別無其他關係。打個比方,我有乙個籃子,籃子裡面放了乙個蘋果,乙個香蕉,乙個梨子。這三種水果除了放在乙個籃子裡面,他們沒有其它聯絡。這籃子裡三種水果就屬於乙個集合,他們老死不相往來。

4.1.2 線性結構

資料結構中的元素存在一對一的相互關係;打個比方,我要高考了,但是我數學不好,所以我請了乙個數學老師給我單獨補課,並且規定在我補課期間,該數學老師不能跟其他人補課,那麼我和這個數學老師就是一對一的關係,我們之間的關係就是他跟我補課。還比如排隊,每列只站乙個人,每列總共十個人,那麼他們每個人之間有先後關係,但是都是一對一的先後關係。

4.1.3 樹形結構

資料結構中的元素存在一對多的相互關係;比如,乙個數學老師給兩個或者多個學生補課,那麼老師和學生之間就是一對多的關係。

4.1.4 圖形結構

資料結構中的元素存在多對多的相互關係。比如我們的交通網,長沙有n條高速公路到達上海,同時上海也有k條高速公路到達長沙,長沙到上海是一對三n的關係,上海到長沙也是一對k的關係,所以長沙和上海是多對多的關係。

4.2 資料的物理結構

資料的邏輯結構在計算機儲存空間的存放形式被稱為資料的物理結構。

4.2.1 順序儲存結構

把邏輯上相鄰的結點儲存在物理位置上相鄰的儲存單元裡,結點間的邏輯關係由儲存單元的鄰接關係來體現。在計算機中用一組位址連續的儲存單元依次儲存線性表的各個資料元素,稱作線性表的順序儲存結構。

特點:1、隨機訪問表中元素。

2、插入和刪除操作需要移動元素。

4.2.2 鏈結儲存結構

在計算機中用一組任意的儲存單元儲存線性表的資料元素(這組儲存單元可以是連續的,也可以是不連續的)。它不要求邏輯上相鄰的元素在物理位置上也相鄰.因此它沒有順序儲存結構所具有的弱點,但也同時失去了順序錶可隨機訪問的優點。

特點:1、比順序儲存結構的儲存密度小 (每個節點都由資料域和指標域組成,所以相同空間內假設全存滿的話順序比鏈式儲存更多)。

2、邏輯上相鄰的節點物理上不必相鄰。

3、插入、刪除靈活 (不必移動節點,只要改變節點中的指標)。

4、查詢結點時鏈式儲存要比順序儲存慢。

5、每個結點是由資料域和指標域組成。

4.2.3 資料索引儲存結構

特點:4.2.4 資料雜湊儲存結構

雜湊儲存,又稱hash儲存,是一種力圖將資料元素的儲存位置與關鍵字之間建立確定對應關係的查詢技術。比如將湯高這個名字通過乙個函式轉換成為乙個值,這個值就是姓名湯高在計算機中的儲存位址,這個函式稱為hash函式。hash函式有很多種,今天先不談。以後再細講。雜湊法儲存的基本思想是:它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表

特點:雜湊是陣列儲存方式的一種發展,相比陣列,雜湊的資料訪問速度要高於陣列。要依據資料的某一部分來查詢資料時陣列一般要從頭遍歷陣列才能確定想要查詢的資料位置,而雜湊是通過函式通過「想要查詢的資料」作為「輸入」、「資料的位置」作為「輸出」來實現快速訪問,因此時間複雜度可以認為為o(1),而陣列遍歷的時間複雜度為o(n)。

邏輯結構是面向問題的,而物理結構就是面向計算機的,其基本的目標就是將資料及其邏輯關係儲存到計算機的記憶體中。

5.資料結構與演算法簡單**

資料結構和演算法概述

資料結構是對在計算機記憶體 有時在磁碟中 中的資料的一種安排。資料結構包括陣列,鍊錶,棧,二叉樹,雜湊表等。演算法是對這些結構中的資料進行各種處理。對於大多數資料結構來說,都需要知道如下操作 1.插入一條新的資料項 2.尋找某一特定資料項 3.刪除某一特定資料項 4.迭代訪問某一資料結構中的各資料項...

資料結構和演算法概述

資料結構 data structure 是帶有結構特性的資料元素的組合。它研究的是資料的邏輯結構和資料的物理結構以及它們之間的相互關係,並對這種結構定義相適應的運算,設計出相應的演算法,並確保經過這些運算以後所得到的新結構仍保持原來的資料型別。簡而言之,資料結構是相互之間存在一種或多種特定關係的資料...

資料結構和演算法概述

2 鏈式儲存結構 下面我們用一些實際的案例體驗一些演算法。案例1 計算1到100的和。package com.sunxiaping 定義兩個整型變數 執行100次加法運算 列印結果到控制台 author 許大仙 version 1.0 since 2020 12 04 11 19 public cl...