【從頭學數據結構和算法】一、複雜度、數組、鏈表


複雜度

時間複雜度

  • 概述

    • O(xx):表示代碼執行時間與數據規模增長的變化趨勢,也叫作漸進時間複雜度
    • 不依具體數據,不依具體硬件條件,可以粗略地估計代碼執行效率
  • 最好、最壞情況時間複雜度
  • 平均複雜度
  • 平攤複雜度
    • 感覺跟平均複雜度很像,只是在估計方式上進行了一定程度的簡化

空間複雜度

  • 存儲空間與數據規模之間的增長關係

數組

定義?

  • 是線性表(只有“前”“後”兩個方向)
  • 連續的內存空間和相同數據類型的數據

特性

  • 隨機訪問(a[k]_address = base_address + k * type_size
  • 低效的插入和刪除

數組訪問越界問題

可見 https://blog.csdn.net/ZhangDanzhu/article/details/90642312


鏈表

  • 通過指針將一組零散的內存塊串聯在一起

單鏈表

  • 頭節點、尾節點、後繼指針
  • 尾節點指向空指針

循環鏈表

尾節點指向頭節點

雙向鏈表

單鏈表基礎上增加前驅指針

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章