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

2021-10-05 16:02:54 字數 947 閱讀 9219

陣列棧

佇列鍊錶

堆雜湊表(雜湊表)樹圖

名稱英文名稱

*平均時間複雜度

最好時間複雜度

最差時間複雜度

*空間複雜度

*穩定性

選擇排序

selection

n²n²n²1

不穩定氣泡排序

bubble

n²n²n1

穩定*插入排序

insertion

n²n²n1

穩定希爾排序

shell

n^1.3n²n

1不穩定

*歸併排序merge

*快速排序

桶排序計數排序

基數排序

星號是一定要熟記於心的。1

2.1 肉眼判別:如果演算法複雜,肉眼不夠可靠。

2.2 盡可能使用多的隨機樣本:單個樣本的結果可能會有遺漏,樣本越多準確率越高。

2.3 使用已知正確的演算法對比自己的演算法。

複雜度用大寫字母o表示,大o符號根據其增長率來表徵功能。

空間複雜度是[解決問題的方法]所消費的[空間]隨著[計算規模]而[變化]的[規律]。乙個演算法在計算機儲存器上所占用的儲存空間,包括儲存演算法本身所占用的儲存空間,演算法的輸入輸出資料所占用的儲存空間和演算法在執行過程中臨時占用的儲存空間這三個方面。

舉栗:求6的分解質因數有哪些,解為,原本只有乙個數6,算完就變成了倆,其占用的儲存空間翻倍,那麼其空間複雜度為o(2)

排序演算法的穩定性:

假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這些記錄的相對次序保持不變,則稱這種排序演算法是穩定的;否則稱為不穩定的。

持續更新…

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

1.簡單排序的種類 2.簡單排序之間的比較 3.小結舉例說明 在郵局經常需要去處理郵件,郵件會從下至上堆積成為乙個棧,此時處理的方式就是先處理最上面的郵件,這種方式只有能夠在合理的時間內從容處理完所有的信件,這種工作方式才不會產生太 煩,否則最底層的信件就將會永遠無法得到處理 1.棧的實戰示例 2....

緒論 資料結構和演算法01

什麼是資料結構?資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及它們之間的關係和操作等相關問題的學科。資料結構事實上就是這樣子 程式設計 資料結構 演算法 再簡單的來說資料結構就是關係,沒錯,就是資料元素相互之間存在的一種或多種特定關係的集合。傳統上,我們把資料結構分為邏輯結構和物理結構...

5分鐘了解資料結構

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