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

2021-09-02 22:36:07 字數 1923 閱讀 3327

資料結構是計算機儲存、組織資料的方式。(資料結構是指資料與資料之間的關係。)

資料結構是指相互之間存在一種或多種特定關係的資料元素的集合。通常情況下,精心選擇的資料結構可以帶來更高的執行或者儲存效率。資料結構往往同高效的檢索演算法和索引技術有關。

邏輯結構

示意圖1、集合結構

2、線性結構

3、樹形結構

4、圖形結構

儲存結構:儲存在計算機裡面的結構

儲存結構

描述1、陣列    

相同型別、若干變數、有序

2、雜湊表(雜湊表)

儲存在f(key)

3、鍊錶    

非連續、非順序、鍊錶指標(資料域,指標域)

4、堆疊    

先進後出

5、佇列    

先進先出 、後進後出

6、樹       

根、結點、葉子;前驅,後繼;【e.g.】二叉樹

7、圖       

結點(頂點)、邊

演算法(algorithm)是指解題方****而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。(演算法即解決問題的一套方法)

演算法複雜度

描述1、空間複雜度

執行時占用多少記憶體

2、時間複雜度執行時占用多少時間,主要研究關鍵**執行次數。表示:o(n) 。

【例】o(n) = n2 + 3n + 100 ==>o(n) = n2

【例】o(n) = n5 + n4 + n ==>o(n) = n5

時間複雜度:o(n) = n2

for (int i = 0; i < n; i++) 

}

時間複雜度:o(n) = n2 + n + 1 ≈ n2

時間複雜度研究的是n => ∞,所以【例1】和【例2】的時間複雜度是一樣的。所以我們考慮的是n的幾次方的問題。

for (int i = 0; i < n; i++) 

}for (int i = 0; i < n; i++)

// todo do something

程式 = 資料結構 + 演算法程式好壞 = 空間複雜度 + 時間複雜度 +【應用場景】

定義乙個臨時變數實現兩個數交換,可讀性最好。【在不影響使用者體驗的情況下,選擇可讀性最好的程式】

public void swap()
節省了乙個空間,但是如果是物件,無法實現兩個數交換。

public void swap()
執行速度最快,節省了乙個空間,效能最優,支援物件交換,但是可讀性差。適合對記憶體要求高,比如無人機,跑步機等

public void swap()

資料結構(一) 資料結構緒論與演算法

資料結構可以說是計算機軟體相關專業的基礎課程,幾乎可以說要想從事程式設計或開發工作,都無法避開這部分的知識。但是這部分知識也是相對來說較難的知識,即使是學會了其中的內容,要在開發和程式設計工作中很好地運用資料結構的知識對程式猿來說也是較難的,反正對我來講是挺難的。在考研的過程中資料結構是我的一門主要...

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

資料結構 對計算機記憶體中的資料的一種安排。演算法 對結構中資料進行各種處理 應用方面 1.現實世界資料儲存 2.程式設計師的工具 3.現實世界的建模 資料結構 優點 缺點 陣列 插入快 知道下標 查詢慢,刪除慢,大小固定 有序陣列 比無序的陣列查詢快 刪除和插入慢,大小固定 棧 提供後進先出的訪問...

(一)資料結構與演算法簡介

目標 掌握資料結構與演算法的理論知識 補齊演算法短板 梳理前端與演算法結合點,不再紙上談兵,將演算法用於實戰 三部曲 刷題 前端與資料結構 演算法的結合點 在工作中與資料結構 演算法大交道 資料結構與演算法是什麼 資料結構 計算機儲存 組織資料的方式,就像鍋碗瓢盆 演算法 一系列解決問題的清晰指令,...