資料結構與演算法概述

2021-09-26 23:11:55 字數 1095 閱讀 4471

1.集合結構:集合結構中的資料元素除了屬於同乙個集合外,它們之間沒有任何關係。

2.線性結構:線性結構中的資料元素之間是一對一的關係。

3.樹形結構:樹形結構中的資料元素之間存在一種一對多的層次關係。

4.圖形結構:圖形結構的資料元素是多對多的關係。

物理結構是指資料的邏輯結構在計算機中的儲存形式。

1.順序儲存結構:開闢一組連續的空間儲存資料,通常用陣列來實現,陣列中的空間本來就是連續的,保證了資料之間的關係。

順序儲存結構底層實現是陣列,因為陣列具有角標,因此在進行查詢和修改比較快。

演算法是解決特定問題求解步驟的描述。

設計演算法要提高程式的執行效率,這裡的效率大都指演算法的執行時間。

乙個高階程式語言編寫的程式在計算機上執行時所消耗的時間取決於下列因素:

事後統計方法:這種方法主要是通過設計好的程式的資料,利用計算機計時器對不同演算法程式的執行時間進行比較,從而確定演算法效率的高低。

事前分析估算法:這種方法主要早計算機程式編制前,依據統計方法對演算法進行估算。

在進行演算法分析時,語句總的執行次數t(n)是關於問題規模n的函式,進而分析t(n)隨n的變化情況並確定t(n)的數量級。演算法的時間複雜度,也就是演算法的時間度量,基座:t(n)=o(f(n))。它表示隨著問題規模n的增大,演算法執行時間的增長率和f(n)的增長率相同,乘坐演算法的漸進時間複雜度。簡稱時間複雜度。其中f(n)是問題規模n的某個函式。

常數階o(1):隨著n的增大而迴圈次數並不會發生改變。

線性階o(n):隨著n的增大而增大。

對數階o(logn):雖然也隨著n的增大而增大,但是這種增大屬於加速度減小的加速運動。

平方階o(n*2)

如果n足夠大時,此時看的是數量級可以忽略常數,忽略n的係數。

時間複雜度大小排序:

o(1)

資料結構與演算法概述

研一結束了,馬上要進入研二的生活了。接下來就要進入了找工作的階段。在網上查詢了各種找工作的面經,發現資料結構是應聘軟體行業必考的內容之一,並在資料結構在對自己的軟體設計水平的提高也有很大的幫助,所以從今天開始將進行資料結構的學習。在學習一樣東西之前,先要明白其含義。資料結構的定義如下 我們如何把現實...

資料結構與演算法概述

資料型別 程式語言中的資料型別是指具有預定義值得乙個資料集合,常見的資料型別有 整數型,浮點型,字串,字元等。一般有兩種資料型別 系統定義的資料型別 基本資料型別 使用者自定義的資料型別 使用者自定義的類,可以將系統定義的資料型別進行組合封裝成使用者需要的資料型別 class student 資料結...

資料結構與演算法概述

從問題入手比如人狼羊菜過河問題。問題抽象 首先需要分析和抽象問題的需求和限制,簡歷問題模型。目的 把人狼羊菜運到對岸 條件 資料抽象 接下來我們需要恰當的資料結構來描述這個數學模型。簡單排列組合我們發現系統一共有16種狀態 包括空狀態 但是按照條件我們能夠踢出 狼羊,人菜 與前者互補狀態 羊菜,人狼...