黑马程序员技术交流社区
标题: 折半查找 哪里出错了? [打印本页]
作者: 被水淹死的鱼 时间: 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 |