遞迴和非遞迴的二分查詢

2021-06-26 04:16:08 字數 716 閱讀 4305

思路很簡單,**注釋已標註

#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.若它的左子樹不空,則左...