1. 程式人生 > >二分查詢-C語言

二分查詢-C語言

  1. 程式碼實現
#include <stdio.h>
//因為data[0]中存的是要查詢的數,所以如果返回值為0,說明沒找到 
int BinarySearch(int data[],int length)
{
	int left=1;
	int right=length;
	while(left<=right)
	{
		int mid=(left+right)/2;
		if(data[mid]<data[0]){
			left=mid+1;
		}
		else if(data[mid]==data[0]){
			return mid;
		}
		else
{ right=mid-1; } } return 0; } int main(int argc, char** argv) { int data[14]={45,5,16,39,45,51,98,100,202,226,321,368,444,501}; printf("要查詢的數的位置是:%d\n",BinarySearch(data,13)); return 0; }
  1. 執行結果

因為data[0]存放的是要查詢的數,所以

  • 如果結果非0,說明查詢成功
  • 如果結果為0,說明沒找到