第一次總結

2021-09-05 04:06:47 字數 1398 閱讀 9663

這是第一次寫部落格,確實不知道寫什麼,就總結一下今天學到的吧。

磁碟 記憶體 cpu 之間的關係

2.知道了它們的關係,我們來看資料結構

對資料的基本操作就是增刪改查,而它們可以分為順序結構和鏈式結構,陣列就是順序結構,我們可以通過下標來訪問它的每乙個元素。

我們來看一下各個結構的時間複雜的:

型別操作

時間複雜度

說明無序陣列

增o(1)

只需在陣列末尾新增資料即可

刪o(n)

在查的基礎上,還得移動資料,刪除元素的後面的元素向前移

改o(n)

在查的基礎上,只需修改元素的值即可

查o(n)

需要遍歷陣列

有序陣列

增o(n)

需要找到元素的插入位置,然後移動元素,使其保持有序

刪o(n)

需要找到要刪除位置,然後移動後面的元素

改o(n)

需要找到修改元素,再找到插入位置,再移動元素,此種操作時間最長

查o(log2n)

因為是有序的,可以採用折半查詢

無序鍊錶

增o(1)

只要在頭部或尾部插入即可

刪o(n)

需要遍歷鍊錶,找到後刪除,調節指標即可

改o(n)

需要遍歷鍊錶 ,查到乙個元素後還得繼續查到尾,修改找到的元素

查o(n)

需要遍歷鍊錶,查到乙個元素後還得繼續查到尾

有序鍊錶

增o(n)

需要遍歷鍊錶,找到插入位置

刪o(n)

遍歷鍊錶,找到元素,刪除,但如果下乙個比它大就可停止尋找

改o(n)

找到元素後,插入到正確位置,同樣,下乙個比它大就不用再找了

查o(n)

遍歷鍊錶,但找到後,發現下乙個比它大就不用繼續找了

看上面的各個結構的時間複雜度,發現都不是很理想,這時引入了樹結構,對於滿二叉排序樹來說,增刪改查的時間複雜度都是log2n, 二叉排序樹是左子樹的值都比它小,右子樹的值都比它大,所以每次查詢都會把範圍縮小一半,刪除,修改,增加也是,通過分支選擇能很快找到相應位置。我們知道,這和這棵樹的高度有關,找到乙個元素,最多需要比較logn 也就是樹的高度 次。

但對於有些序列來說如, 1,2,4,5 當我們構建排序樹時,會形成一條單鏈,和單鏈表就一樣了,顯然,我們不希望這樣,這時,我們需要構建平衡二叉樹,平衡二叉樹的各個操作時間複雜度也都時logn。

相應的,還有三叉樹,m叉樹,叉數越多,層次就越少,比較次數也就越少,也就越快,而b樹,b+樹,紅黑樹,應該就是這種結構,對於資料庫的索引,大多數用的就是這幾種結構,以便更快進行操作。

這是第一次寫部落格,有好多東西表述不清,還望理解,其中可能會有錯的地方,歡迎指出,後面寫的很不詳細,因為我也不是太懂,在這做個記錄,以後一定要弄清那些樹結構。

第一次總結

走上acm之路的奇葩起因 大一下學期過得太過渾渾噩噩,負罪感超標,想趁著暑假學點資料結構 c 什麼的,還聽說大二的程式設計實驗巨難,想著靠暑假集訓實驗不掛,真沒想過要出去比賽或者堅持兩年 也是自己比較low,感覺拿不到比賽機會 超沒追求的說。學校acm暑假集訓,因為是妹紙,所以零基礎教練也讓參加了 ...

第一次停課總結

不知不覺就四月了,過得好快啊!雖然馬上就要省選了,但我還是一副若無其事的樣子,本來就是去打醬油的,只是分了打得好與不好兩種情況。我還是選擇了先停一周課,事實證明,這是有效果的,沒有達到預期的效果。這幾天是心情比較鬱悶吧,主要是因為還是沒有完美的完成每天的任務吧,尤其是那些有指標的,指來指去弄不che...

HTML第一次總結

相簿採用相對路徑時 b 採用絕對路徑時 b 字型風格可以分為物理風格和邏輯風格 指定物理風格的常用標記有 黑體 斜體 下劃線 刪除線 指定邏輯風格的常用標記有 強調 較小 較大 上標 下標 等 屬性介紹 src 設定的路徑,一般使用相對路徑。width和height 設定的寬和高,一般設為影象的真實...