二分查詢法

2021-10-04 18:23:36 字數 756 閱讀 6143

#include

int binary_search(int arr,int key,int left,int right)//定義並宣告乙個二分查詢函式

else if (arr[mid] > key)//當zrr[mid]大於要查詢的數時

else//當left等於right時

}if (left <= right)//跳出迴圈即left等於right,如果此時left小於等於right即為找到

else

}int main()

;int key;

printf(「請輸入要查詢的數字:–>」);

scanf("%d", &key);//定義key為要查詢的數字

int left = 0;

int sz = sizeof(arr) / sizeof(arr[0]) - 1;

int ret = 0;

ret = binary_search(arr, key, 0, sz);

if (ret == -1)

else

return 0;

}二分查詢也稱折半查詢,其優點是查詢速度快,缺點是要求所要查詢的資料必須是有序序列。該演算法的基本思想是將所要查詢的序列的中間位置的資料與所要查詢的元素進行比較,如果相等,則表示查詢成功,否則將以該位置為基準將所要查詢的序列分為左右兩部分。接下來根據所要查詢序列的公升降序規律及中間元素與所查詢元素的大小關係,來選擇所要查詢元素可能存在的那部分序列,對其採用同樣的方法進行查詢,直至能夠確定所要查詢的元素是否存在。

二分查詢法

二分查詢要求 1.必須採用順序儲存結構 2.必須按關鍵字大小有序排列。優缺點 折半查詢法的優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。演算法思想 首先,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者...

二分查詢法

有序陣列中的find 方法 public int find long serchkey int lowerbound 0 int upperbound nelems 1 while true curin lowerbound upperbound 2 if a curin serchkey retu...

二分查詢法

演算法基本思想 二分查詢演算法的前置條件是,乙個已經排序好的序列 假設這個序列是公升序排列的 這樣在查詢所要查詢的元素時,首先與序列中間的元素進行比較,如果大於這個元素,就在當前序列的後半部分繼續查詢,如果小於這個元素,就在當前序列的前半部分繼續查詢,直到找到相同的元素,或者所查詢的序列範圍為空為止...