3分鐘速讀原著《Java資料結構與演算法》 二

2021-09-22 17:51:18 字數 1184 閱讀 8088

1.簡單排序的種類

2.簡單排序之間的比較

3.小結

舉例說明:在郵局經常需要去處理郵件,郵件會從下至上堆積成為乙個棧,此時處理的方式就是先處理最上面的郵件,這種方式只有能夠在合理的時間內從容處理完所有的信件,這種工作方式才不會產生太**煩,否則最底層的信件就將會永遠無法得到處理

1.棧的實戰示例

2.佇列

特性就是fifo
3.優先順序佇列
優先順序佇列的方式就是在每個入隊的元素當中加上關鍵字的判斷,使得這個優先順序的佇列進行內部排序,使得整個佇列變成乙個有序佇列,優先順序佇列可以保證重要的任務先執行,但是如果不斷的向優先順序佇列當中插入優先順序高的任務,可能導致所有優先順序低的佇列永遠都得不到執行的機會

4.小結
鍊錶就好像是火車,它的每個鍊錶物件都會引用下乙個或者上乙個鍊錶物件,所以鍊錶相比於陣列的優點就是增加乙個鍊錶節點或者刪除乙個鍊錶節點都會比陣列的快,相對來說陣列的根據索引查詢就會比鍊錶快,但是如果是不知道索引的線性搜尋查詢,其實本質上速度跟鍊錶並沒有什麼區別

1.單向鍊錶
單向鍊錶類似於棧,特點:
2.雙向鍊錶
就是在雙向鍊錶的物件當中引入了對最後乙個節點的引用,針對於最後乙個節點也可以像對第乙個節點一樣的進行相對應的引用操作,並且在每個鍊錶節點當中不僅可以找到它的上乙個節點,也可以找到他的下乙個節點

3.鍊錶的效率

4.有序鍊錶

簡單來說就是有順序的鍊錶結構
在有序鍊錶當中插入或者刪除某一項最多需要o(n)次比較,平均是n/2次,因為必須要沿著鍊錶一步步走才能找到正確的位置,可以在o(1)時間內找到或者刪除最小值,因為它總是在表頭,如果需求時乙個應用頻繁的訪問最小值,而且不需要快速的插入,那麼有序鍊錶是乙個非常有效的方案選擇,例如優先順序佇列就可以使用有序鍊錶來進行實現

5.雙端鍊錶
雙向鍊錶要區分於雙端鍊錶,雙端鍊錶是可以找到該節點的上乙個節點的,但是雙向鍊錶只是能夠從鍊錶的兩端同時進行遍歷,並不能夠找到任意乙個節點的上乙個節點

6.小結
備註:有序陣列查詢快,無序陣列索引查詢快,鍊錶增加和刪除快

3分鐘速讀原著《高效能MySQL》 一

本系列主要是針對 高效能mysql 原著進行內容抽取,幫助開發者快速閱讀書籍1.讀寫鎖 2.鎖的粒度1.特性 2.沒有事務將產生的問題 3.mysql的隔離級別mysql預設為repeatable read 4.死鎖當兩個或者多個update語句要同時執行時產生死鎖,解決方案是讓持有最少寫鎖的事務回...

5分鐘了解資料結構

老外真的很喜歡創造新名詞。春節的時候我給我姐選顯示器,因為我姐是做設計的,我特地研究了一下顯示器的色域。我發現除了我們常用的srgb外,還有個adobe rgb。後來經過了解,原來是photoshop的工程師在參考其他色彩標準的時候搞錯了引數,後來懶得改了,便自己申請了專利,搞成了乙個新的色彩標準,...

3分鐘學演算法 01 資料結構和演算法初探

陣列棧 佇列鍊錶 堆雜湊表 雜湊表 樹圖 名稱英文名稱 平均時間複雜度 最好時間複雜度 最差時間複雜度 空間複雜度 穩定性 選擇排序 selection n n n 1 不穩定氣泡排序 bubble n n n1 穩定 插入排序 insertion n n n1 穩定希爾排序 shell n 1.3...