查找:二分查找(binary search)

    技术2026-08-10  2

    对已经排好的数组进行折半查询.

     

    #include<stdio.h> int search(int arr[],int start,int end,int key) { int pos=(start+end)/2; //no such item:key if(start>end || (start==end && arr[start]!=key)){ return -1; } if(arr[pos]==key){ return pos; }else if(arr[pos]>key){ return search(arr,start,(start+end)/2-1,key); }else if(arr[pos]<key){ return search(arr,(start+end)/2+1,end,key); } return -1; } int main() { int arr[7]={1,3,5,7,8,11,24}; int k=search(arr,0,6,8); printf("%d in arr index is %d",8,k+1); getchar(); return 0; } 

     

    参考:

    1.<算法导论> 第二版2.3-5

    最新回复(0)