天天看點

C語言之二分查找

二分查找算法,說白了就是在有序的數組裡面給予一個存在數組裡面的值Q,然後用将其先和數組中間的比較,如果Q大于中間值,則進行下一次mid後面的比較,直到找到相等的,就可以得到他的位置。

 示例代碼如下

#include<stdio.h>

#include<stdlib.h>

int erfen(int a[],int n,int num);

int main(){

int n;

    int i;

printf("輸入幾個數? ");

scanf("%d",&n);

int a[n];

    for(i=0;i<n;i++){

    int d;

         printf("請輸入第%d個數?",i+1);

         scanf("%d",&d);

         a[i]=d;

}

printf("想查找的數為?");

int q;

scanf("%d",&q);

    int g = erfen(a,n,q);

g = g+1;

printf("第%d個",g); 

return 0;

}

int erfen(int a[],int n,int num){

int low=0;

int high=n-1;

int mid;

while(low<high){

mid =(low+high)/2;

if(a[mid]==num)

  return mid;

if(a[mid]<num)

   low=mid+1;

   if(a[mid]>num)

       high=mid-1;

}

}

C語言之二分查找
C語言之二分查找
C語言之二分查找
C語言之二分查找

嘻嘻嘻嘻嘻

繼續閱讀