码迷,mamicode.com
首页 > 其他好文 > 详细

二分法查找

时间:2016-10-12 00:39:15      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:


#include<stdio.h>

void binary_search(int key, int a[], int n) /*自定义函数binary_search*/
{
    int low, high, mid, count = 0, count1 = 0;
    low = 0;
    high = n - 1;
    while (low < high)								/*当查找范围不为0时执行循环体语句*/
    {
        count++;								/*count记录查找次数*/
        mid = (low + high) / 2;						/*求出中间位置*/
        if (key < a[mid])							/*当key小于中间值*/
            high = mid - 1;						/*确定左子表范围*/
        else if (key > a[mid])						/*当key大于中间值*/
            low = mid + 1;							/*确定右子表范围*/
        else if (key == a[mid])						/*当key等于中间值证明查找成功*/
        {
            printf("查找成功!\n查找 %d 次!a[%d]=%d", count, mid, key);
			/*输出查找次数及所查找元素在数组中的位置*/
            count1++;							/*count1记录查找成功次数*/
            break;
        }
    }
    if (count1 == 0)								/*判断是否查找失败*/
        printf("查找失败!");							/*查找失败输出no found*/
}

void main()
{
    int i, key, a[100], n;
    printf("请输入数组的长度:\n");
    scanf("%d", &n);								/*输入数组元素个数*/
    printf("请输入数组元素:\n");
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]);							/*输入有序数列到数组a中*/
    printf("请输入你想查找的元素:\n");
    scanf("%d", &key);							/*输入要查找的关键字*/
    binary_search(key, a, n);						/*调用自定义函数*/
	printf("\n");
}

  

二分法查找

标签:

原文地址:http://www.cnblogs.com/flywolf601/p/5951076.html

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