折半法查找

原创 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;

}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java 折半查找法 txt代码

  • 2014-04-25 23:20
  • 886B
  • 下载

acm折半查找法参考代码

  • 2016-05-28 16:08
  • 395KB
  • 下载

用c语言编写折半查找法

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

折半查找法/二分法

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

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

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

折半查找(分治法)

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

折半查找法

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

二分查找法 (折半法)

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

C语言 选择排序、折半查找法与二维数组

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 19.选择排序 for (int i = 0; i1; i++) {    ...

java基础 选择排序、冒泡排序、折半查找法

1、选择排序 选择排序,逐次选择最大的或是最小的元素,放到起始位置或是末尾位置,直到排序完成 package sort; //选择排序 /** * 选择排序 * 在未排序的数组中找到最...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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