軟考中級(軟體設計師) 資料結構基礎之查詢

2021-09-27 03:59:26 字數 1054 閱讀 8548

給定乙個值k,在含有n個記錄的檔案中進行搜尋,尋找乙個關鍵字等於k的記錄,如找到則輸出該記錄,否則輸出查詢不成功的資訊。

用比較次數的平均值來評估演算法的優劣,稱為平均查詢長度asl。

效能分析:平均查詢長度為:(n+1)/2,時間效率o(n)

優點:演算法簡單、適用面廣,對查詢表的結構沒有要求,無論記錄是否按關鍵字有序排列均可使用。

缺點:在n值較大時,平均查詢長度較大,查詢效率較低。

先給資料排序,形成有序表,把待查資料值與查詢範圍的中間元素值進行比較,會有四種情況出現。

待查詢數值與中間元素值相等,返回中間元素值的索引。

待查詢數值比中間元素值小,則以整個查詢範圍的前半部分作為新的查詢範圍,執行第一種,直到找到相等的值。

待查詢的數值比中間元素值大,則以整個查詢範圍的後半部分作為新的查詢範圍,執行第一種,直到找到相等的值。

如果最後找不到相等的值,則返回錯誤提示資訊。

平均查詢長度:(n+1)/n log2(n+1)-1=log2(n-1)-1

折半查詢比順序查詢的效率要高,但它 要求查詢表經行順序儲存並且按關鍵字有序列表,因此對錶經行元素的插入和刪除時,需要移動大量的元素,所以折半查詢適用於表不易變動,且又經常經行查詢的情況。

又稱索引順序查詢,是對順序查詢方法的一種改進,其效能介於順序查詢和折半查詢之間。

在分塊查詢過程中,首先把錶分成若干塊,每一塊中的關鍵字不一定有序,但有塊之間是有序的,即後一塊中所有記錄的關鍵字均大於前一塊中最大的關鍵字,還建立了乙個索引表,索引表按關鍵字有序。

對索引表使用折半查詢法(因為索引表是有序表)

確定了待查關鍵字所在的子表後,在子表內採用順序查詢法(因為各子表內部是無序表)

根據關鍵碼值而直接經行訪問的資料結構。由關鍵碼的值決定資料的這個儲存位址,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫坐雜湊表。

優點:查詢速度極快(o(1)),查詢效率與元素個數n無關。

構造好的雜湊函式

所選函式盡可能簡單、以便提高轉換速度。

所選函式對關鍵碼計算除的位址,應在雜湊位址內集中並大致均勻分布,以減少空間浪費。

軟考 中級軟體設計師 考點

1.算術表示式採用逆波蘭式表示時不用括號,可以利用 1 進行求值。與逆波蘭式 ab cd 對應的中綴表示式是 2 1 a.陣列 b.棧 c.佇列 d.雜湊表 2 a.a b c d b.a b c d c.a b c d d.a b c d 解析 逆波蘭式也叫字尾表示式,是將運算子寫在運算元之後的表...

軟考中級軟體設計師做題筆記 六

累加器用來暫時存放算術邏輯運算部件alu運算的結果資訊 當採用dma方式時,不需要cpu執行程式指令來傳送資料 對大量明文進行加密,考慮效率問題,一般採用對稱加密,常見的對稱金鑰加密演算法 des 3des rc 5 idea 關鍵字和注釋不能作為識別符號給物件命名 螺旋模型更適合大型的昂貴的系統級...

軟考中級軟體設計師做題筆記 一

1 記憶體又稱主存,是cpu能直接定址的儲存空間,由半導體器件製成。cpu內外的快取記憶體不屬於主存,與主存容量無關,它是用來解決cpu與記憶體之間速度 容量不匹配的問題,容量相對於其他儲存層次,量級較小。2 系統的可靠性 串聯系統 r r1 r2 rn 併聯系統r 1 1 r1 1 r2 1 rn...