一、基本資料結構:
基本資料結構的定義、特性、運算、演算法。
基本資料結構的分類(邏輯結構):
(1)線性結構:線性表、棧、佇列、雙佇列、陣列、廣義表、串
(2)非線性結構:樹、二叉樹、圖、網
儲存結構:
(1)順序儲存:向量、一維陣列
(2)鏈式儲存:鍊錶
二、演算法:
查詢:順序、折半、分塊、雜湊、二叉排序樹
排序:直接插入、冒泡、選擇、希爾、快速排序、堆排序、2-路歸併、基數排序
演算法分析:
時間複雜度:演算法的時間開銷相對於問題規模的變化趨勢
t(n)=o(f(n))
n:問題的規模 f(n):基本操作執行次數總和 。 常見的時間複雜度型別:常量階、線性階、平方階、對數階、指數階
o(1)、o(n)、o(n的平方)、o(log
2n)、o(nlog
2n)、o(2的n次方)
氣泡排序最好、最壞時間複雜度:
void bubble(int a,int n)
for(i=0;i1.2.3.4.5 5.4.3.2.1
最好情況:f(n)=n*n+2n-1 o(n*n) 最壞情況:f(n)=5n*n/2+n/2-1 o(n*n)
空間複雜度:
三、資料結構:
相互之間存在一種或多種特定關係的資料元素的集合。
data_structure=(d,s) d:資料元素的集合 s:關係的集合
4種基本結構:集合、線性結構、樹、圖狀結構
資料結構與演算法 基本概念
課前導入 如何在書架上擺放圖書,擺放圖書有兩個相關操作。操作1 新書如何插入書架 操作2 如何找到需要的書 方法1 隨便放 一本本挨著放 操作1 直接放在最後面 操作2 一本本的找 方法2 按照書名的首字母排序 操作1 根據新書的首字母 二分查詢該插入的位置 移出空位 操作2 使用二分查詢 方法3 ...
資料結構 演算法基本概念
1 有窮性 2 確定性 3 可行性 4 輸入 5 輸出 1 時間複雜度 它定性描述演算法的執行時間。乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。乙個演算法中的語句執行次數稱為語句頻度或時間頻度,記為t n 時間複雜度又分為 最壞時間複雜度,平均時...
資料結構與演算法 排序 基本概念
排序 將線性表中的元素按照公升序或者降序進行有序排列的操作。排序方法的穩定性 關鍵字相同的兩個元素 記錄 排序後的順序如果和排序前的相同,則稱該排序方法是穩定的,否則則稱該排序方法是不穩定的。內排序 在排序過程中,待排序的所有元素 記錄 全部都放置在記憶體中。外排序 在待排序的元素 記錄 太多的情況...