黑马程序员技术交流社区

标题: 折半查找 哪里出错了? [打印本页]

作者: 被水淹死的鱼    时间: 2015-7-16 20:14
标题: 折半查找 哪里出错了?
//
//  main.c
//  折半查找
//
//  Created by tl on 15/7/16.
//  Copyright (c) 2015年 itcast. All rights reserved.
//

#include <stdio.h>
/**
*  折半查找来咋找一个数
*
*  @param arr 数组
*  @param len 数组长度
*  @param key 查找的数
*
*  @return 要查找的数的位置,查不到返回-1
*/
int searchItem(int arr[],int len,int key){
    //定义变量
    int low=0,hig=len-1,mid;

    //循环
    while (low<=hig) {

        //计算mid的位置
        mid = (low+hig)/2;
        //判断key和a[mid]

        if (key>arr[mid]) {
            low = mid +1;
        }else if (key<arr[mid]){
            hig = mid-1;
        }else{
            printf("到这里啦!");
            return mid;
        }
    }
    //查找不到的情况
    return  -100;
}

int main(int argc, const char * argv[]) {
    // 定义一个数组
    int a[]={12,32,41,13,14,17,11,5,31,9};
    int loc = searchItem(a,10,5);
    printf("你要查找的数是第%d个",loc+1);
    return 0;
}


看了半天也不知道哪里出错了,mid值返回不了
作者: 被水淹死的鱼    时间: 2015-7-16 20:27
还是自己发现了问题~~:D




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2