码迷,mamicode.com
首页 > 编程语言 > 详细

有15个数按从大到小的顺序存放在一个数组中, 用折半查找法找出该数是数组的第几个元素的值, 如果该数不在数组中,则输出“无此数”

时间:2017-07-22 12:10:54      阅读:409      评论:0      收藏:0      [点我收藏+]

标签:search   stdio.h   include   can   log   efi   int   void   turn   

//2017年7月22日
#include <stdio.h>
#define LEN 15

int main(){
    int n;
    void binSearch(int * p,int n);
    int arr[LEN]={98,97,88,87,76,70,65,54,43,42,39,36,35,31,29};
    printf("请输入要查找的数:\n");
    scanf("%d",&n);
    binSearch(arr,n);
    return 0;
}

void binSearch(int * p,int n){
    int low,high,mid;
    low=0;
    high=LEN-1;

    while(low<=high){
        mid=(low+high)/2;
        if(p[mid]==n)
        {printf("%d是数组的第%d个元素的值(下标从0开始)\n",n,mid);
         break;//注意找到该元素之后,就结束循环
        }
            else if(p[mid]>n) low = mid+1;
                    else high = mid-1;
    }
    if(low>high) printf("数组中无此数");

}

 

有15个数按从大到小的顺序存放在一个数组中, 用折半查找法找出该数是数组的第几个元素的值, 如果该数不在数组中,则输出“无此数”

标签:search   stdio.h   include   can   log   efi   int   void   turn   

原文地址:http://www.cnblogs.com/Allen-win/p/7220625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!