折半法查找

原创 2015年07月08日 09:33:57


#include <stdio.h>

/* 

 return 要查找的数的位置,如果查找不到返回-1

 */

int  zheban(int a[],int len,int key){

    //定义变量

    int low=0;

    int mid;

    int high=len-1;

    //循环

    while (low<=high){

    

    //计算mid位置

        mid=(low+high)/2;

    //判断key  a[mid]

        if(key>a[mid]){

             //key>a[mid]   low =mid+1

            low =mid+1;

        }else if (key<a[mid]){

            //key<a[mid]   high=mid-1

            high=mid-1;

        }else{

            //key==a[mid]   return mid;

            return mid;

        }

        }

    return -1;

}

//插入数据

int  insert(int a[],int len,int key){

    //定义变量

    int low=0;

    int mid;

    int high=len-1;

    //循环

    while (low<=high){

        

        //计算mid位置

        mid=(low+high)/2;

        //判断key  a[mid]

        if(key>a[mid]){

            //key>a[mid]   low =mid+1

            low =mid+1;

        }else if (key<a[mid]){

            //key<a[mid]   high=mid-1

            high=mid-1;

        }else{

            //key==a[mid]   return mid;

            return mid+1;

        }

    }

    return low;

}



int main(int argc, const char * argv[]) {

    int a[]={2,5,6,8,9,23,45,47,78,88};

    //查找6的位置

    int loc=zheban(a, 10, 45);

    printf("loc=%d\n",loc);

    //要插入元素的位置

    int ins=insert(a, 10, 45);

    printf("ins=%d",ins);

    return 0;

}


acm折半查找法参考代码

  • 2016年05月28日 16:08
  • 395KB
  • 下载

用c语言编写折半查找法

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

折半查找法/二分法

在有序(设为升序)表中,取中间元素作为比较对象,若给定值与中间元素的关键字相等,则查找成功;若给定值小于中间元素的关键字,则在中间元素的左半区继续查找;若给定值大于中间元素的关键字,则在中间元素的右半...

折半查找(分治法)

折半查找也称为二分查找,是一个经典的查找算法。 原始数据使用随机函数生成。 采用结构化程序设计,可以很容易改为从标准输入或文件读入数据,只需要修改函数getData即可。 数据个数由宏定义给出,也可...

折半查找法

查找是在程序设计中最常用到的算法之一,假定要从n个整数中查找x的值是否存在,最原始的办法是从头到尾逐个查找,这种查找的方法称为顺序查找。这种方法效率低。假如要从1000个数据中要查找某一个所需的数据,...

Linux洗C语言基础编程——折半查找法

今天我们写一个选择法排序与折半查找法相结合的程序。主要实现先排序在查找。前面我们已经详细的讲过了选择排序法,现在我们来说下折半查找法 折半查找法的主要思想是 number与mid的比较      ...

二分查找法 (折半法)

class ArrayTest8{ public static void main(String[] args){ int[] arr = {9,12,15,24,36,41,...

数据结构--折半查找法 详解

1. 折半查找法定义          折半查找法,也称为二分查找法, 二分搜索, 是一种在有序数组中查找某一特定元素的搜索算法.搜索过程中从数组的中间元素开始, 如果中间元素正好是要查找的元素, ...
  • nvd11
  • nvd11
  • 2013年04月02日 00:57
  • 843

第十四周项目1线性表的折半查找(递归法)

/*Copyright (c) 2015, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:H1.cpp * 作者:辛志勐 * 完成日期:2015年12月2日...
  • E_miss
  • E_miss
  • 2015年12月02日 19:34
  • 265

C 【折半查找法练习题冒泡排序】

C语言折半查找法练习题 折半查找法: 折半查找法是效率较高的一种查找方法。假设有已经按照从小到大的顺序排列好的五个整数num[0]~num[4],要查找的数是key,其基本思想是: 设查找...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:折半法查找
举报原因:
原因补充:

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