大學學資料結構時侯學的演算法,現在複習一下:
#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...
二分查詢 非遞迴實現和遞迴實現
二分查詢 演算法思想 又叫折半查詢,要求待查詢的序列有序。每次取中間位置的值與待查關鍵字比較,如果中間位置的值比待查關鍵字大,則在前半部分迴圈這個查詢的過程,如果中間位置的值比待查關鍵字小,則在後半部分迴圈這個查詢的過程。直到查詢到了為止,否則序列中沒有待查的關鍵字。二分查詢的前提是這個陣列是有序的...