c 二分查詢實現(非遞迴和遞迴方式)

2021-06-20 10:11:18 字數 554 閱讀 7954

大學學資料結構時侯學的演算法,現在複習一下:

#include using namespace std;

/**二分查詢思想:1、陣列從小到大排序;2、查詢的key每次和中間數比較,如果key小於mid

查詢mid左側的陣列部分;如果key大於mid,則查詢mid右側的陣列部分;如果相等,則直接返回mid。

輸入:排序陣列-array,陣列大小-asize,查詢值-key

返回:返回陣列中的相應位置,否則返回-1

*///非遞迴查詢

int binarysearch(int *array, int asize, int key)

return -1;

}//遞迴

int binarysearchrecursive(int *array, int low, int high, int key)

int main()

{ int array[10];

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

array[i] = i;

cout<<"no recursive:"<

c 二分查詢實現(非遞迴和遞迴方式)

int erfen1 int a,int key,int l,int r if a mid key int erfen2 int a,int key,int l,int r if a mid key return 1 大學學資料結構時侯學的演算法,現在複習一下 cpp view plain copy...

二分查詢實現(遞迴和非遞迴)

遞迴的二分查詢,查詢單個值 時間複雜度 log2n 有點像二叉排序樹的查詢 param arr 待查詢陣列,有序 param low param high param findval 待找值 return 待找值的下標,沒有返回 1 public static intbinarysearch int...

二分查詢 非遞迴實現和遞迴實現

二分查詢 演算法思想 又叫折半查詢,要求待查詢的序列有序。每次取中間位置的值與待查關鍵字比較,如果中間位置的值比待查關鍵字大,則在前半部分迴圈這個查詢的過程,如果中間位置的值比待查關鍵字小,則在後半部分迴圈這個查詢的過程。直到查詢到了為止,否則序列中沒有待查的關鍵字。二分查詢的前提是這個陣列是有序的...