資料結構和演算法概念

2021-09-01 11:05:40 字數 2357 閱讀 1283

資料:描述客觀事物的數字、字元以及一切能夠輸入到計算機中,並且能夠被電腦程式處理的符號的集合;

資料元素之間的聯絡稱之為結構資料結構就是具有結構的資料元素的集合。

資料結構是乙個二元組(d,r),其中d是資料元素的有限集合,r是d上的關係的集合

資料元素之間具有的邏輯關係。分為線性關係,如線性表、陣列、堆疊、佇列、串、檔案等;非線性關係,如樹、二叉樹、圖、集合等。

具有某種邏輯結構的資料在計算機儲存器中的儲存方式(儲存映象)

1、順序儲存結構

用一組位址連續的儲存單元依次存放資料元素,資料元素之間的邏輯關係通過元素的位址直接反映。

2、鏈式儲存結構

用一組位址任意的儲存單元依次存放資料元素,資料元素之間的邏輯關係通過指標間接地反映。

3、索引儲存結構

利用資料元素的索引關係來確定資料元素的儲存位置,由資料元素本身與索引錶兩部分組成。

特點:查詢、插入和刪除等操作的時間效率較高,但儲存空間開銷較大,比如目錄

4、雜湊儲存結構

通過事先準備好的雜湊函式關係與處理衝突的方法來確定資料元素的儲存位置。

特點:查詢、插入和刪除等操作的時間效率較高,但確定好的雜湊函式比較困難

演算法是用來解決某個特定課題的指令的集合。

演算法是由人們組織起來準備加以實施的一系列有限的基本步驟。

演算法就是解決問題的方法。

輸入:由演算法外部提供n>=0個有限量作為演算法的輸入;(可以沒輸入)

輸出:有演算法內部提供n>0個有限量作為演算法的輸出;(必須有輸出)

有窮性:演算法必須在有限的步驟內能夠結束;

確定性:組成演算法的每一條指令必須有清晰明確的含義;

有效性:演算法的每一條指令必須具有可執行性;

1、採用自然語言來描述

2、採用程式流程圖的形式來描述

3、偽**(形式化語言)

4、使用具體的程式語言描述

演算法分析是指對演算法質量優劣的評價。

目的是改進演算法質量;前提是演算法必須正確;

除正確性外,通常從三個方面分析乙個演算法:

1、依據演算法編寫的程式在計算機中執行時間多少的度量,稱之為時間複雜度;(反映演算法執行的快慢)

2、依據演算法編寫的程式在計算機中佔儲存空間多少的度量,稱之為空間複雜度;(反映演算法需要的空間的多少)

3、其他方面(演算法的可讀性、可移植性、易測試性)

時空效率高的演算法才是乙個好演算法,它常常是不懈努力和反覆修正的結果

乙個程式在計算機中執行時間的多少與諸多因素有關,其中主要有:

1、問題的規模;(幾乎所有演算法的時間效率都與問題的規模有關

2、編譯程式功能的強弱以及產生的機器**質量的優劣;

3、機器執行一條指令的時間長短;

4、程式中那些關鍵語句的執行次數;(對演算法執行時間貢獻最大的語句)

以語句執行的次數的多少作為演算法的時間量度的分析方法稱為頻度統計法

一條語句的頻度是指該語句被執行的次數,而整個演算法的頻度是指演算法中所有語句的頻度之和

注:第乙個for迴圈之所以是n+1,是由於當i=n時還需判斷一次

注:與高等數學中同階的定義一致;

演算法時間複雜度的數學意義:當問題的輸入規模n趨於無窮大時,演算法的執行時間表現出固定的增長次數

對於上述例子中的演算法,g(n)=n3,稱演算法的時間複雜度為o(n3)

o(1)表示演算法的複雜度為常量,不隨問題規模n的大小而改變

幾種常見的複雜度的形式如下:

資料結構和演算法 一 資料結構和演算法概念

bilibili黑馬2020版資料結構和演算法教程 2020版資料結構和演算法 首先我們要知道什麼是資料結構 官方解釋 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。通俗點講 它是乙個操作物件,用來把資料元素按照一定的關係組織起來的集合,用來組織和...

資料結構和演算法的概念

資料結構就是,我們怎麼把現實世界中大量而複雜的問題以特定的資料型別和特定的儲存結構儲存到主儲存器 記憶體 中,以及在此基礎上為實現某個功能 比如,查詢乙個元素,刪除乙個元素 而執行的相應的操作,這個相應的操作也叫演算法。簡單來說,資料結構就是怎麼把資料儲存到主存中,資料結構 個體 個體間的關係。我們...

資料結構複習之 資料結構和演算法概念

資料結構就像是乙個催化劑,如果沒有原料是無用的,單是有了演算法就能幫演算法更快的實現任務 資料結構 是指相互之間存在一種或多種特定關係的資料元素 的集合,簡單地說是資料之間的各種關係的集合。程式設計 資料結構 演算法 解釋 如果要寫乙個程式,需要選擇乙個良好的資料結構,加上良好的解決問題的演算法 資...