20162320劉先潤大二第3周學習總結

2022-04-03 05:45:41 字數 1712 閱讀 9393

線性查詢,從一端開始以線性的方式掃瞄找池。(下圖是我繪製的乙個說明圖)

二分查詢,借助查詢池中資料的有序性,每次從中間開始查詢,即每次比較都會將物件的範圍縮小一倍,排除了一半的可行候選資料。

選擇排序:反覆地將乙個個具體的值放到它最終的有序位置,從而完成一組值的排序。

我的理解:每一次從將要排序的資料中選出最小的乙個資料,存放在序列的起始位置,直到所有的資料元素排完。 例如:

氣泡排序:每次比較相鄰的兩個元素,從左到右,如果左邊的元素大於右邊的元素就進行交換,最後比較的元素越來越少,知道沒有元素進行比較。

快速排序:通過比較把要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按照此方法把剩餘的部分進行比較排序。

插入排序:反覆地將乙個個具體的值插入到表的已有序的子表中,從而完成一組值的排序。

我的理解:插入排序應該是在原表上從乙個地方插到另乙個地方,而不是移動到另乙個表上。如圖:

歸併排序:遞迴地將表平分為兩部分,直到每個子表中只含有乙個元素,然後將這些子表歸併為有序表,從而完成一組值的排序。

我的理解:將兩個已經排序的序列合併成乙個序列(分而治之)。

桶排序:我的理解:將陣列中的元素分到對應其數量的桶中,根據桶的順序進行排序(浪費空間)。

基數排序:根據數字的位數進行排序,例如十位數,現根據十位數大小放入桶中排序,然後再排個位數,利用了維度的性質。n位數最多需要排10的n次方次。

-比較查詢和排序演算法

比較查詢:對於線性查詢和二分查詢兩種演算法,二分查詢有對數階的複雜度,對於大的查詢池來說效率很高。

比較排序:選擇排序、插入排序及氣泡排序的平均執行時間複雜度是o(n²)

**除錯見寫bag類的部落格的部落格

(statistics.sh指令碼的執行結果截圖)

呼呼呼,快要跟不上節奏了,還是繼續埋頭苦幹吧,加油。

**行數(新增/累積)

部落格量(新增/累積)

學習時間(新增/累積)

重要成長

目標5000行

400小時

第一周188

1/125

演算法分析

第二週70/258

1/215/40

《構建之法》7-9章

第三週474/732

1/320/60

查詢和排序

第四周(有空多看看現代軟體工程 課件 軟體工程師能力自我評價表)

20162320劉先潤大二第7周學習總結

一.樹 樹是非線性結構,其中的元素組織為乙個結構層次。而之前的集合 棧 佇列及鍊錶 都是線性資料結構,即他們的元素可以乙個接乙個排列。樹 tree 是有一組邊 edge 夠構成,結點用來儲存元素,邊表示結點之間的連線。如下圖所示,書中較低一層的結點稱為其前一層結點的子節點 children 乙個結點...

20162320劉先潤大二第6周學習總結

佇列元素按fifo的方式處理 最先進入的元素最先離開 佇列是儲存重複編碼k值的一種有效結構。實現模擬時常用佇列來表示等待的一列 教材實現方法 首先建立customer類,記錄了顧客到達的時間及買完票後離開的時間,離開時間減去到達時間就是顧客買票所花費總時間,然後ticketcounter模擬這個場景...

20162320劉先潤第5周學習總結

statistics.sh指令碼的執行結果截圖 上週部落格互評情況 關於課程程式學習的經驗感悟 1.要理解教材上的程式,一定要掌握單詞的意思。比如程式5.11中reciprocal,denominator,我第一次學習時直接忽略了這個單詞意思跳躍學習,結果花了很多時間都看不懂,終於去查了字典,其意思...