C 二分 折半 查詢

2021-09-12 08:58:11 字數 967 閱讀 5288

首先,假設表中元素是按公升序排列,將表「中間位置記錄的關鍵字」與「查詢關鍵字」進行比較,如果兩者相等,則查詢成功。

否則,利用「中間位置的記錄」將表分成「前後」兩個子表:

(1)如果「查詢關鍵字」

(2)如果「查詢關鍵字」>「中間關鍵字」,後子表查詢。

重複以上過程,直到查詢成功。

#include #include using namespace std;

/**********************************/

/* 二分(折半)查詢演算法

/*********************************/

int binarysearch(int array, int n, int key) //二分查詢函式,key是查詢的元素

else

if (array[mid] < key)

else

}return -1; //沒有找到對應的元素,返回-1

}int main(void) //主程式

; cout << "陣列為: " << endl;

for (int i = 0; i < 6; i++)

cout << endl; //換行

int k = binarysearch(array, sizeof(array) / sizeof(int), 2);

cout << "數值(2)的位置為:" << endl;

cout << "array" << "[" << k << "]" << endl;

cout << endl << endl; //換行

system("pause"); //除錯時,黑視窗不會閃退,一直保持

二分 折半 查詢

折半查詢 又叫二分查詢,採用分治思想,適用於不經常變動且查詢頻繁的表 演算法思想 將n個元素 假設n個元素公升序 分為大致相同的兩部分,取data n 2 與目標元素m比較 若data n 2 m return n 2 若data n 2 m 則我們只要在data的左半部分繼續查詢 若data n ...

二分 折半 查詢

二分查詢 請對乙個有序陣列進行二分查詢 輸入乙個數看看該陣列是否存在此數,並且求出下 標,如果沒有就提示 沒有這個數 二分查詢演算法的思路 二分 折半 查詢條件 有序陣列。public class binarysearch 不考慮有重複元素的查詢。int index solutionsearch a...

二分(折半)查詢演算法

二分查詢又稱折半查詢,它是一種效率較高的查詢方法。折半查詢的演算法思想是將數列按有序化 遞增或遞減 排列,查詢過程中採用跳躍式方式查詢,即先以有序數列的中點位置為比較物件,如果要找的元素值小於該中點元素,則將待查序列縮小為左半部分,否則為右半部分。通過一次比較,將查詢區間縮小一半。折半查詢是一種高效...