// // 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值返回不了 |