查詢:
折半查詢:針對有序表,將給定值與中間位置元素的關鍵字比較,若相等,則查詢成功,若不成功,就比較大小,得到新的中間值。可採用遞迴演算法實現。
時間複雜度為o(logn)演算法:
void binarysearch(int *arr,int length,int key)
//若還沒有找到,改變左右區間繼續尋找
if (arr[mid] < key)
left = mid + 1;
if (arr[mid] > key)
right = mid - 1;
} cout << "cannot find it" << endl;
return;雜湊查詢:
hash,一般翻譯做「雜湊」,也有直接音譯為「雜湊」的,就是把任意長度的輸入(又叫做預對映,pre-image),通過雜湊演算法,變換成固定長度的輸出,該輸出就是雜湊值。這種轉換是一種壓縮對映,也就是,雜湊值的空間通常遠小於輸入的空間,不同的輸入可能會雜湊成相同的輸出,而不可能從雜湊值來唯一的確定輸入值。簡單的說就是一種將任意長度的訊息壓縮到某一固定長度的訊息摘要的函式。
public class linearprobinghashset: symboltableswhere tkey : icomparable, iequatable
private int hash(tkey key)
public override tvalue get(tkey key)
} return default(tvalue);
} public override void put(tkey key, tvalue value)
//插入
keys[i] = key;
values[i] = value;
} }
}
資料結構之查詢
date 08 07 11 descript 折半查詢,插入跟刪除演算法 public class binaryinsertex extends seqlist public binaryinsertex int n public void create catch exception ex pub...
資料結構之查詢
一 靜態查詢 有序表查詢 平均查詢長度 特點 1 折半查詢 log n 1 1 只是適用於有序表,且限於順序儲存結構 線性鍊錶無法進行折半查詢。2 斐波那契查詢 o logn 平均效能比折半好,但最壞效能比折半差 分割時只需進行加減運算,適用於關鍵字均勻分布的表 對錶長較大的順序表,其效能比折半好 ...
資料結構之查詢
1.折半查詢只能用於有序資料,且是順序儲存結構 實質是用了陣列的下標的折半 2.折半查詢效率是比較高的,但折半查詢必須是順序儲存結構,為了能讓鏈式儲存結構也能用這樣的模式,就引出了平衡二叉樹,他的效率在順序查詢和折半查詢之間 3.b 樹主要用於檔案資料儲存,也就是外存,因為外存的訪問速度慢,為減少訪...