C语言:编写折半查找函数,即二分法

原创 2016年05月30日 17:12:37
#include<stdio.h>
#include<stdlib.h>

int Binary(int arr[],int size,int x)
{
    int left = 0;
    int right = size - 1;
    int mid = left - (left - right) / 2;  //防止溢出!!!int mid =( left - right )/2 好。
    
    while (left <= right)
    {
        if (x > arr[mid])
        {
            mid++;
            right--;
        }
        
        else if (x < arr[mid])
        {
            mid--;
            left++;
        }
        
        else
        {
            return mid;
        }
    }
    return -1;
}


int main()
{
    int arr[] = { 2, 5, 6, 7, 9, 14, 18, 20 };
    int len = sizeof(arr) / sizeof(arr[0]);
    int num = 0;
    scanf("%d", &num);  //输入要查找的数num
    int ret = Binary(arr, len,num);
    if (ret == -1)
    {
        printf("not exist!");
    }
    else
    {
        printf("exist!下标为:\n");
        printf("%d", ret);
    }
    system("pause");
    return 0;
}


【C/C++】折半查找(二分查找)

一、二分查找 在C和C++里,二分查找是针对有序数组所用的一种快速查找元素的方法。 二、二分查找的条件以及优缺点 条件:针对有序数组(元素从小到大或从大到小) 优点:查询速度较快,时间复杂度为O(n)...
  • qq_31828515
  • qq_31828515
  • 2016年06月30日 17:34
  • 13811

十.用C语言实现查找算法 (1)顺序查找;(2)二分查找(折半查找);(3)二叉排序树;(4)哈希查找

程序名称:Search.cpp // 程序功能:采用结构化方法设计程序,实现多种查找算法。 // 程序作者:*** // 最后修改日期:2011-3-3 #include"iostream" #inc...
  • u011676589
  • u011676589
  • 2013年08月16日 07:59
  • 3091

【二分查找】用C语言实现一个有序数组的二分查找

什么是二分查找?首先,二分查找也叫折半查找,它是对于一组有序(升序或降序)数列来说的,我们举例子说明这个思想。 例如:猜数字游戏 随机给出1-100内的一个数字,请猜出这个数字 那我们不能随机没...
  • weixin_36820871
  • weixin_36820871
  • 2017年04月12日 19:49
  • 1372

用c语言编写折半查找法

折半查找法又称为二分查找,是在一个有序数组里面找到一个具体的数,方法我在代码里注释到了。 #include int binary_search(int *arr, int key, int sz...
  • Beginner_zero
  • Beginner_zero
  • 2017年04月09日 17:18
  • 795

折半查找用简单的C语言编写

代码如下:#include void search(int arr[],int left,int right,int num) { int mid=0; while(left>1); i...
  • chenkaixin_1024
  • chenkaixin_1024
  • 2016年10月14日 17:35
  • 260

折半查找的简单C语言算法

  • 2016年05月13日 18:37
  • 725B
  • 下载

顺序表的折半查找(C语言)

  • 2008年12月16日 20:58
  • 25KB
  • 下载

顺序查找和折半查找(C语言)

  • 2010年05月13日 19:38
  • 2KB
  • 下载

C语言简单实现折半查找法

近期研习C语言,谭浩强《C语言程序设计(第2版)》P167.6原题:     有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中...
  • midong2000
  • midong2000
  • 2013年06月09日 15:18
  • 3733

数据结构C语言版折半查找

/*       名称:折半查找        语言:数据结构C语言版        编译环境:VC++ 6.0       日期: 2014-3-26    */      #incl...
  • u014359929
  • u014359929
  • 2014年04月03日 17:56
  • 419
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言:编写折半查找函数,即二分法
举报原因:
原因补充:

(最多只允许输入30个字)