當關鍵字的全域u比較小時,直接定址。
11.1-1 考慮由乙個長度為m的直接定址表t表示的動態集合s。給出乙個查詢s的最大元素的演算法過程。所給的過程在最壞情況下的執行時間是什麼?
遍歷動態集合中的所有元素o(m)
11.1-2 位向量是一種僅包含0和1的陣列。長度為m的位向量所佔空間要比包含m個指標的陣列少得多。請說明如何用乙個位向量來表示乙個包含不同元素(無衛星資料)的動態集合。字典操作的執行時間應該是o(1)。
b[i]為1表示元素i存在,為0則不存在。
11.1-3 說明如何實現乙個直接定址表,使各元素的關鍵字都不必相同,且各元素可以有衛星資料。所有三種字典操作(insert,delete和search)的時間應為o(1)。
相同關鍵字的元素由鍊錶鏈結。
*11.1-4 我們希望通過利用在乙個非常大的陣列上直接定址的方式來實現字典。開始時,該陣列中可能存在廢料,但要對整個陣列進行初始化是不實際的,因為該組的規模太大。請給出在大陣列上實現直接定址字典的方案。每個儲存的物件占用o(1)的空間;操作search,insert和delete的時間為o(1);對資料結構初始化的時間為o(1)。
《演算法導論》第11章 雜湊表 1 直接定址表
一 直接定址表 關鍵字集合u 實際的關鍵字集合k。用乙個陣列t 0.m 1 其中每個位置對應u中的乙個關鍵字。直接定址表的問題 1 如果u很大,要儲存 u 大小的一張表t有點不實際。2 實際儲存的關鍵字集合k相對u來說可能很小,因而分配給t的大部分空間都要浪費掉。二 位向量 位向量 bit vect...
《演算法導論》筆記 第2章
本章出現了全書第乙個演算法 插入排序。插入排序並不是最直觀的排序演算法,拿它做第乙個講解應該有其他的理由。通過插入排序的講解,偽 約定 迴圈不變式 演算法分析等最基礎的知識被帶了出來。此後又講了第二個演算法 合併排序,並引出了演算法設計中的兩種常見型別 增量法 incremental 和分治法 di...
《演算法導論》筆記 第2章 演算法入門
第2章 演算法入門 插入排序 對陣列a進行插入排序 insertion sort a 1 for j 2 to length a 2 do key a j 代表賦值 3 insert a j into the sorted sequence a 1.j 1 4 i j 1 5 while a i k...