複雜度
時間複雜度
-
概述
- O(xx):表示代碼執行時間與數據規模增長的變化趨勢,也叫作漸進時間複雜度
- 不依具體數據,不依具體硬件條件,可以粗略地估計代碼執行效率
- 最好、最壞情況時間複雜度
- 平均複雜度
- 平攤複雜度
- 感覺跟平均複雜度很像,只是在估計方式上進行了一定程度的簡化
空間複雜度
- 存儲空間與數據規模之間的增長關係
數組
定義?
- 是線性表(只有“前”“後”兩個方向)
- 連續的內存空間和相同數據類型的數據
特性
- 隨機訪問(a[k]_address = base_address + k * type_size
) - 低效的插入和刪除
數組訪問越界問題
可見 https://blog.csdn.net/ZhangDanzhu/article/details/90642312
鏈表
- 通過指針將一組零散的內存塊串聯在一起
單鏈表
- 頭節點、尾節點、後繼指針
- 尾節點指向空指針
循環鏈表
尾節點指向頭節點
雙向鏈表
單鏈表基礎上增加前驅指針