學習筆記3: 3-18

(1)排序算法的時間複雜度和空間複雜度:冒泡排序,快速排序,堆排序等
穩定的排序 時間複雜度 空間複雜度
冒泡排序(n2代表n的平方):比較相鄰,每次冒泡最大的放到最後
最差、平均: O(n2) 最好: O(n) 1(因爲需要一個臨時變量來交換元素位置)
插入排序
最差、平均: O(n2) 最好: O(n) 1
歸併排序:將序列分成兩半邊;自頂向下分置,自頂向上分置
最差、平均、最好: O(nlogn) O(n),鏈表時可爲O(1)(因爲需要一個大小爲n的臨時數組)
不穩定的排序 時間複雜度 空間複雜度
快速排序
平均: O(nlogn) 最壞: O(n2) O(logn)(因爲遞歸調用了)
快排在完全無序的情況下效果最好,時間複雜度爲O(nlogn),在有序情況下效果最差,時間複雜度爲O(n^2)
堆排序:將數組成堆,每次刪除堆頂
最差、平均、最好: O(nlogn) 1(因爲需要一個臨時變量來交換元素位置)
選擇排序:每次選擇最小的放在最前
最差、平均: O(n2) 1(因爲需要一個臨時變量來交換元素位置)
希爾排序 O(nlogn) 1

不穩定排序:“快選希堆”,原地排序:“快選希堆冒”
在這裏插入圖片描述
https://www.nowcoder.com/test/question/done?tid=22330194&qid=2169#summary
(2)二叉搜索樹:樹中任何結點的左子樹中所有結點的值均比該結點小,右子樹中所有結點的值均比該結點大。對二叉搜索樹進行中序遍歷可得到一個遞增排序的序列。
(3)簡單匹配算法的時間複雜度爲O(mn),KMP匹配算法時間複雜度爲O(m+n).
(4)哈希:哈希表存儲的是鍵值對,其查找的時間哈希複雜度與元素數量多少無關,哈希表在查找元素時是通過計算哈希碼值來定位元素的位置從而直接訪問元素的,因此哈希表的插入,刪除,查找都是O(1)。
(5)算法的時間複雜度取決於問題的規模和待處理數據的初態。
(6)線性表的存儲結構分爲順序存儲和鏈式存儲:(1)順序存儲爲邏輯上相鄰且物理地址也連續,以數組形式出現,可以取任意下標訪問,是一種隨機存取的存儲結構;(2)鏈式存儲是邏輯上相鄰但是物理地址不一定連續,以鏈表的形式出現,必須從頭開始訪問,是一種順序存取的存儲結構。
(7)T(n) = 25T(n/5)+n^2的時間複雜度:a = 25, b = 5, d = 2,則d = logba,所以時間複雜度爲O(ndlgn) = O(n^2
(lgn))
在這裏插入圖片描述
https://www.nowcoder.com/test/question/done?tid=22313135&qid=15147#summary

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