演算法1 二分法查詢有序列表

2021-10-12 04:50:18 字數 576 閱讀 3004

時間複雜度:o(logn)

#include

intmain()

;int low =0;

int high =8;

//頭部 尾部

int guess =10;

//要猜的數字為10

int mid;

//頭尾中間

int k;

//使用的數字去猜

while

(low<=high)

if(k < guess)

if(k > guess)

}printf

("k = %d"

,k);

return0;

}

這樣每次取一半,每次比較都能篩選掉很多資料。假定如上述**:要找數字10,先把我們的k設定成陣列中間的那個數,(即6)。因為6 < 10,所以把頭部low往右拉過來,直接到中間後一位的位置(即7)。此時頭 ~ 尾是7 ~ 19,取中間為9(偶數取中間為左邊那個數,可以計算一下驗證),9<10,再把頭部low往右拉過來,此時頭 ~ 尾是10 ~ 19,再取中間便是10,找到了我們要找的數字。

查詢演算法 二分法

二分查詢演算法的基本思想 一.首先確定該區間的中間元素位置 mid low high 2 mid代表區間內中間元素的位置 low代表區間內最左邊元素的位置 high代表區間內最右邊元素的位置 二.將待查key元素值與中間元素mid的值 array mid 比較,如果相等,則查詢成功,否則確定新的查詢...

演算法 二分法查詢

1 2 二分法實驗 31 設a 0 n 1 是乙個已排好序的陣列.4請改寫二分搜尋演算法,使得當搜尋元素x不在陣列中時,5返回小於x的最大元素的位置i和大於x的最大元素位置j.6當搜尋元素在陣列中時,i和j相同,均為x在陣列中的位置.72 設有n個不同的整數排好序後存放於t 0 n 1 中,8若存在...

演算法 二分法查詢

免費 二分法查詢主要是為了快速查詢給定陣列內,期待值在陣列中的位置 下標 二分法查詢通過對整個陣列取中間值,判斷期待值所在的範圍並縮小範圍,每次查詢範圍折半,直到範圍的邊界重合,得出期待值的位置,如果找不到返回null 二分法有乙個先決條件是 陣列內元素必須是有序的 給定乙個包含1,3,5,7,8,...