C语言:编写折半查找函数

原创 2016年05月30日 17:13:20

思路:

先把中间元素找到,寻找的元素在中间元素左边,则小于中间元素,改变right。再继续折半找中间元素寻找。



#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int Binary(int x, int arr[], int left, int right)
{
    int mid = 0;
    while (left <= right)
    {
        int mid = left - (left - right) / 2;
        if (x > arr[mid])
        {
            left = mid + 1;
        }
        else if (x < arr[mid])
        {
            right = mid - 1;
        }
        else
        {
            return mid;
        }
    }
    return -1;
}


int main()
{
    
    int arr[] = { 1, 3, 4, 6, 7, 8, 56, 67, 78 };
    int size = sizeof(arr) / sizeof(arr[0]);
    int ret = Binary(78, arr, 0, size - 1);

    if (ret == -1)
    {
        printf("not exsit");
    }
    else
    {
        printf("%d", ret);
    }
    system("pause");

    return 0;
}


用c语言编写折半查找法

折半查找法又称为二分查找,是在一个有序数组里面找到一个具体的数,方法我在代码里注释到了。 #include int binary_search(int *arr, int key, int sz...

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

代码如下:#include void search(int arr[],int left,int right,int num) { int mid=0; while(left>1); i...

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

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

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

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

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

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

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

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

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

/*       名称:折半查找        语言:数据结构C语言版        编译环境:VC++ 6.0       日期: 2014-3-26    */      #incl...

黑马程序员——c语言基础:冒泡排序、选择排序和折半查找

1.冒泡排序 冒泡排序是一种简单的排序算法,分为大数下沉和小数上浮两种。 冒泡排序步骤(大数下沉): 1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2)对每一对相邻元素作同样的工...

OutMan——C语言中的冒泡排序、选择排序、折半查找以及指针的介绍

冒泡排序 选择排序 折半查找 折半插入 指针的介绍

黑马程序员_C语言基础_数组之冒泡排序、快速选择排序、折半查找

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------       学习一维数组和二维数组的差别不大,学习方法可以通用,在学习过程中可以比较学习,找出...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言:编写折半查找函数
举报原因:
原因补充:

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