進行二分查詢的前提是陣列已排序,這裡假定陣列遞增排序。
每次查詢都將待查詢數num與處於陣列中間位置a[mid]的數進行比較,num
在函式中使用low, mid, high來對待查詢的範圍來進行標記。
參考程式碼如下:
/*整數查詢*/
void binsearch( int num, int a[], int length ) /*num為待查詢數字,length為陣列a的長度*/
{
int low, mid, high;
low = 0;
high = length - 1;
while( low
mid = ( low + high ) / 2;
if( a[mid] > num )
high = mid - 1;
else if( a[mid]
low = mid + 1;
else
return mid;
}
return -1 /*未查詢到num返回-1*/
進行二分查詢的前提是陣列已排序,這裡假定陣列遞增排序。
每次查詢都將待查詢數num與處於陣列中間位置a[mid]的數進行比較,num
在函式中使用low, mid, high來對待查詢的範圍來進行標記。
參考程式碼如下:
/*整數查詢*/
void binsearch( int num, int a[], int length ) /*num為待查詢數字,length為陣列a的長度*/
{
int low, mid, high;
low = 0;
high = length - 1;
while( low
{
mid = ( low + high ) / 2;
if( a[mid] > num )
high = mid - 1;
else if( a[mid]
low = mid + 1;
else
return mid;
}
return -1 /*未查詢到num返回-1*/
}