數據結構——基礎知識

基本知識點

複雜度對比

執行次數 複雜度 非正式術語
12 O(1) 常數階
2n+1 O(n) 線性階
2n^2+2n+1 O(n^2) 平方階
2log2n+1 O(logN) 對數階
n3+n2+n+100 O(n^3) 立方階
2^n O(2^n) 指數階

O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)

算法優化方向

  • 時間換空間
  • 空間換時間

數組(Array)

  • 數組是一種順序存儲的線性表,所有元素的內存地址是連續的
  • 數組的容量不可以動態修改,因此有了動態數組
  • 堆空間
    int[] array = new int[]{11,22,33};
    內存地址|內存空間
    -|-
    0x1110|11
    0x1111|22
    0x1112|33

鏈表(Linked List)

  • 鏈表是一種鏈式存儲的線性表,所有元素的內存地址不一定是連續的
  • 雙向鏈表、兩個節點之間頭尾相連

棧(Stack)

  • 棧是一種特殊的線性表,只能在一端進行操作
  • 先進後出遠,後進先出

隊列(Queue)

  • 隊列是一種特殊的線性表,只能在頭尾兩端進行操作
  • 隊尾:添加元素
  • 隊頭:移除元素
  • 先進先出
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章