資料結構與演算法(一)

2021-10-21 17:40:36 字數 759 閱讀 5524

資料結構是資料的組織(儲存)方式,演算法是解決問題的一種思想。

程式=資料結構+演算法

資料結構分為線性結構和非線性結構:

線性結構指乙個元素往上往下相鄰對應的只有乙個元素,而非線性結構是指乙個元素對應的有多個元素。

線性結構常用的儲存結構有順序表和煉表。兩種儲存方式的區別在於鍊錶的多個元素的儲存不是一塊連續的位址,能夠利用好碎片空間,順序表則是在一塊連續的位址上儲存元素的,比如陣列。

有很多結構,比如棧,佇列,圖等但他們都是在陣列和鍊錶的基礎上去實現的。(棧,用陣列用乙個指標來移動表示成佇列,佇列,陣列用兩個指標,頭指標和尾指標,來表示出隊和進隊的方向。就不用移動元素在陣列中的位置了)。

一.稀疏陣列(sparsearray)

應用場景:壓縮二維陣列,比如記綠棋盤遊戲

將原陣列中無意義的資料(二維陣列中的同乙個值)給去掉,只保留有效資料,提高效率。

1.先遍歷二維陣列,得到有效值的個數sum(要儲存的不同的值)

2.建立稀疏陣列,sparesarr[sum+1][3]

3.給稀疏陣列賦值。

資料結構與演算法(一) 資料結構與演算法概念

資料結構是計算機儲存 組織資料的方式。資料結構是指資料與資料之間的關係。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合。通常情況下,精心選擇的資料結構可以帶來更高的執行或者儲存效率。資料結構往往同高效的檢索演算法和索引技術有關。邏輯結構 示意圖1 集合結構 2 線性結構 3 樹形結構 4...

資料結構與演算法(一)

物件導向程式設計方式 1.使用自定義類封裝陣列 2.新增類方法來實現資料操作。無序陣列 增 刪 改 查 更 顯 public class myarray public myarray int maxsize 新增資料 public void insert long value 顯示資料 public...

資料結構與演算法一

遞迴 無限呼叫自身這個函式,每次呼叫總會改動乙個關鍵變數,直到這個關鍵變數達到邊界的時候,不再呼叫。遞迴與迴圈的區別?相同點 1 都是通過控制乙個變數的邊界 或者多個 來改變多個變數為了得到所需要的值,而反覆而執行的 2 都是按照預先設計好的推斷實現某乙個值求取 請注意,在這裡迴圈要更注重過程,而遞...