用函式實現二分查詢
阿新 • • 發佈:2018-12-20
問題及程式碼:
#include <stdio.h> int binary_search(int arr[], int n, int k); #define SIZE 10 int main( ) { int d[SIZE] = {1,3,9,12,32,41,45,62,75,77}; int key,index; printf("Input a key you want to search: "); scanf("%d", &key); index = binary_search(d, SIZE, key); if(index >= 0) printf("The index is %d .\n", index); else printf("Not found.\n"); return 0; } int binary_search(int arr[],int n,int k) { int i=-1; int low=0,high=n-1,mid; while(low<=high) { mid=(low+high)/2; if(arr[mid]==k) { i=mid; break; } else if(arr[mid]>k) { high=mid-1; } else { low=mid+1; } } return i; }