回顧資料結構與演算法1

2021-10-08 05:09:19 字數 465 閱讀 8207

資料結構:儲存資料的不同方式:

演算法:同一問題不同的解決方法

陣列(演算法:每次插入需分配新空間):插入慢、查詢快

鍊錶(演算法:每次插入指標指向即可):插入快、查詢慢

如何選擇演算法:(大o表示法)

1)時間測算:(時間複雜度) big o

long before =system.currenttimemullis();

for 迴圈

long after system.cuurentimemullis();

before - after

2)空間測算:

時間複雜度:

時間--規模--變化規律

訪問陣列某個位置的值

o(1):時間是固定的

訪問鍊錶某個位置的值

o(n) :當問題規模擴大,時間成線性變化

求乙個陣列的平均數:o(n)

求乙個陣列最大值:o(n)

資料結構與演算法 堆排序演算法回顧

堆排序是利用堆這種資料結構而設計的一種排序演算法,堆排序是一種選擇排序,它的最壞,最好,平均時間複雜度均為o nlogn 它也是不穩定排序。堆排序的應用場景主要有 topk問題,優先順序佇列等。原理 1.將存放在array 0,n 1 中的n個元素建成初始堆 2.此時,堆頂元素該堆的最大值 3.將堆...

資料結構與演算法(1)

演算法 資料結構 一 演算法 1.演算法的幾個特徵是什麼。2.演算法複雜性的定義。大o 小o分別表示的含義。3.遞迴演算法的定義 遞迴演算法的兩要素。4.分治演算法的思想,經典的分治演算法 全排列 二分搜尋 歸併排序 快速排序 線性時間選擇 最接近點對問題 5.動態規劃演算法解題框架,動態規劃演算法...

資料結構與演算法(1)

1 線性表 2 棧 3 佇列 4 字串 補充 遞迴 1 樹與二叉樹 2 圖 1 查詢 2 排序 編寫相關演算法 資料結構 入門問題 1.為什麼學習資料結構?1 高階程式設計的理論指導 2 提公升編碼能力 3 面試中經常被問及,看發展潛力 2.有哪些資料結構?2.11線性結構 線性表 棧 佇列 陣列 ...