折半法查找

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

}


数组_例题:折半查找法

/*折半查找法!*/# include # define N 10int main(void){ int i, num; int data[] = {13,15,23,29,30,31,38,45,5...
  • u010345869
  • u010345869
  • 2014年04月14日 10:57
  • 1169

折半(对半)搜索算法

二分搜索算法要求有序表采用顺序存储,其中折半搜索(又称折半搜索)是二分搜索的一个特例,设当前搜索的子表为(Aleft,Aleft+1,Aleft+2,……,Aright),令 m=(left+rig...
  • wyh7280
  • wyh7280
  • 2015年04月09日 19:49
  • 2012

二分查找算法、折半搜索、二分搜索

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表...
  • song_shi_chao
  • song_shi_chao
  • 2013年04月27日 22:39
  • 5636

数据结构 折半查找法(算法思想和源代码)

算法思想: 首先,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一...
  • LiuBo_01
  • LiuBo_01
  • 2017年10月19日 20:46
  • 486

折半查找与二叉查找树

折半查找、二叉查找树的效率均高于顺序查找,在本文构建的折半查找与二叉查找树在生活中的应用也是十分广泛。...
  • tanjiquan
  • tanjiquan
  • 2016年02月17日 18:03
  • 1319

折半查找法的递归和非递归形式

/* 1、折半查找的查找过程是:先确定待查记录所在区间,然后逐步缩小范围至到找到或者找不到该记录为止。 2、折半查找的性能分析可以由判定树得出,折半查找在查找成功时给定值进行比较的关键字个数至多为⌊l...
  • u011446963
  • u011446963
  • 2015年06月01日 11:30
  • 1442

实现折半查找的算法(数据结构)

输出顺序表(1,2,3,4,5,6,7,8,9,10)中采用折半查找的方法查找关键字9的过程#include #define MAXL 100 //定义表中最多...
  • GJG666
  • GJG666
  • 2017年12月07日 14:25
  • 234

设计一个程序,输出在顺序表中采用折半找法查找关键字的过程

#include"iostream" #include"algorithm" using namespace std; class list{ private: int data[20]; int...
  • u012651730
  • u012651730
  • 2013年12月05日 20:15
  • 1276

Python一日一练16----折半查找

介绍二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,...
  • a359680405
  • a359680405
  • 2016年04月14日 10:52
  • 1334

算法 -- Java实现二分(折半)查找(图解 + 代码实现)

算法 -- Java实现二分(折半)查找(图解 + 代码实现)...
  • feng2qing
  • feng2qing
  • 2016年12月24日 17:41
  • 1545
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:折半法查找
举报原因:
原因补充:

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