資料結構 有序表查詢

2021-08-04 19:59:26 字數 1023 閱讀 4626

對於已經排好序的表,有

在有序表中,取中間的記錄進行比較,如果相同,匹配成功。如果比中間值小,就在中間記錄的左半區進行查詢,如果大,就在右半區。

public

static

intbinarysearch(int key)

return -1;

}

插值查詢是對折半查詢的改進。

折半時 mid = (l

ow+h

eigh

t)2 = lo

w2+ he

ight

2 = low-lo

w2+ he

ight

2 = low+ 12

(height-low)

折半查詢是按1/2進行查詢,如果有10000個有序陣列找乙個很小的數5,就有了優化的空間。

將查mid的公式替換為mid=low+ke

y−a[

low]

a[he

ight

]−a[

low]

(height-low) 即按比例獲取要比較的中間值

斐波那契相鄰的數接近**分割,與折半類似,只是切割的範圍為**分割點。平均效率高於折半,最壞的效率比折半差

public

static

void

main(string args) ;

system.out.println("==>" + fbsearch(src, 88));

} public

static

intfbsearch(int array, int key) else

if (key > tmp[mid]) else

}return -1;

} //獲取斐波那契陣列

public

static

int getfibon(int len)

return fibon;

}

參考:大話資料結構

資料結構 有序表查詢及實現

折半查詢 binary search 又稱為二分查詢。它的前提就是u是線性表中的記錄必須有序的,線性表必須採用順序儲存。折半查詢的基本思想 在有序表中,取中間記錄作為比較物件,若給定值與中間記錄的關鍵字相等,則查詢成功 若給定值小於中間記錄的關鍵字,則在中間記錄的左半區繼續查詢 若給定值大雨中間記錄...

大話資料結構 順序表 有序表 線性索引查詢

查詢 根據給定的某個值,在查詢表中確定乙個其關鍵字 唯一的標識乙個記錄 等於給定值的資料元素或資料記錄。靜態查詢 只查詢,不修改元素 線性表 順序查詢 二分查詢 動態查詢 查詢時,插入或者刪除元素 二叉排序樹 順序表查詢 順序查詢 針對靜態查詢表 也叫線性查詢o n 從頭開始遍歷,直到最後乙個記錄。...

資料結構演算法題 有序矩陣查詢

在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,誒一列都按照從上到下遞增的順序排序,請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否包含了該整數。例如下面的二維陣列就是每行 沒列都遞增排序。如果在這個陣列中查詢數字7,則返回true 找得到 如果查詢數字5,由於陣列不含該數字,...