思路很簡單,**注釋已標註
#include
//遞迴二分查詢
int binarysearch(int*start,int *end,intfinddata)
int *mid = start + (end - start)/2; //根據中間值不斷二分縮小待查元素所在範圍
if (finddata == *mid) else
if(finddata > *mid)else
}//非遞迴二分查詢
int binarysearchrec(int*start,int *end,intfinddata)
while (start <= end) else
if(finddata > *mid)else
}return -1;
}int main(intargc, const
char* argv)
; // num =8,二分查詢的前提條件是元素有序的
int len = sizeof(array)/sizeof(int);
printf("遞迴二分查詢binarysearch:%d\n",binarysearch(array,array+ len - 1,100));
printf("非遞迴二分查詢binarysearchrec:%d\n",binarysearch(array,array + len - 1,19));
return0;}
二分查詢 遞迴和非遞迴
二分查詢要求 資料儲存在順序儲存結構中 數字有序排放 原理 將陣列分為三部分,依次是左值,中值,右值 將要查詢的值和陣列的中值進行比較,若小於中值則在中值前 面找,若大於中值則在中值後面找,等於中值時直接返回。然後依次是乙個遞迴過程,將前半部分或者後半部分繼續分解為三部分。迴圈實現二分查詢 temp...
二分查詢的遞迴和非遞迴
二分查詢,這個適用於已經排序好了的陣列,沒有排序那就先排序,不過要根據實際的情況,要是排序代價很小,這樣很好了 2.15,在有序陣列中查詢,利用二分查詢的方法 include using namespace std 二分查詢 也可以通過遞迴實現 int sort int a,int length,i...
二分查詢的遞迴和非遞迴
常見的查詢演算法大概有順序查詢 二分查詢 二叉排序樹查詢 雜湊表法 雜湊表 分塊查詢等,下面簡單了解一下其他幾種查詢演算法。1.順序查詢 也就是暴力方法,按順序比較每個元素,直到找到關鍵字為止。條件 無序或有序資料,時間複雜度 o n 2.二叉排序樹查詢 二叉排序樹的性質 1.若它的左子樹不空,則左...