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
#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()
c 二分查詢實現(非遞迴和遞迴方式)
大學學資料結構時侯學的演算法,現在複習一下 include using namespace std 二分查詢思想 1 陣列從小到大排序 2 查詢的key每次和中間數比較,如果key小於mid 查詢mid左側的陣列部分 如果key大於mid,則查詢mid右側的陣列部分 如果相等,則直接返回mid。輸入...
二分查詢實現(遞迴和非遞迴)
遞迴的二分查詢,查詢單個值 時間複雜度 log2n 有點像二叉排序樹的查詢 param arr 待查詢陣列,有序 param low param high param findval 待找值 return 待找值的下標,沒有返回 1 public static intbinarysearch int...
二分查詢 非遞迴實現和遞迴實現
二分查詢 演算法思想 又叫折半查詢,要求待查詢的序列有序。每次取中間位置的值與待查關鍵字比較,如果中間位置的值比待查關鍵字大,則在前半部分迴圈這個查詢的過程,如果中間位置的值比待查關鍵字小,則在後半部分迴圈這個查詢的過程。直到查詢到了為止,否則序列中沒有待查的關鍵字。二分查詢的前提是這個陣列是有序的...