源代码:
//
// main.c
// biSearch
// 程序目的:在r[n]数组中折半查找关键字等于kx的记录
// Created by zhen7216 on 2016/12/4.
// Copyright © 2016年 chenzhen. All rights reserved.
//
#include <stdio.h>
#define max 13
int searchList[max] = {0, 5, 12, 25, 34, 37, 43, 46, 58, 80, 92, 105};
//在数组中查找
int biSearch(int r[], int n, int kx) {
int mid, low, high;
low = 1;
high = n - 1;
while(low <= high) {
mid = (low + high) / 2;
if (kx < r[mid])
high = mid - 1;
else if (kx > r[mid])
low = mid + 1;
else
return mid;
}
return 0;
}
int main() {
int key;
printf("please input the data:\n");
scanf("%d", &key);
if (biSearch(searchList, max, key))
printf("the data is found\n");
else
printf("the data is not found\n");
}