折半查找法

1人阅读 评论(0) 收藏 举报
分类:
  • 用折半查找法对一个已经排好序的数组进行查找
    *取中间元素与查找元素进行比较,如果查找元素比中间元素大,则在中间元素右边查找,如果查找元素比中间元素小,则在中间元素的左边查找。
    *设查找范围下限为l=0,上限为h=n-1,求中点m=(l+h)/2,用X与中点元素am比较,若X等于am,即找到,停止查找;否则,若X大于am,替换下限l=m+1,到下半段继续>查找若X小于am,换上限h=m-1,到上半段继续查找;如此重复前面的过程直到找到或者l>h为止
//折半查找函数
int search(int a[],int value,int n)//参数a为排好序的数组
{
  int low=0;//定义查找下限
  int high = n-1;//定义查找上限
  int mid;//中间元素的下标
  while(1)
  {
    mid = (low+high)/2;
    //每一次用value与中间元素进行比较 找到元素之后返回下标值  
    if(value == a[mid]){
          return mid;
        }
    else if(value>a[mid]){
          low = mid+1;
          high = high;
       }
    else if(value<a[mid]){
          low = low;
          high = mid-1;
       }
   //如果找不到,返回-1
    if(low > high){
          return -1;
       }
   }

}
查看评论

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

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

折半查找法---C语言实现

/********************************************************************************************* 函数名称:...
  • zhangyuehua123
  • zhangyuehua123
  • 2011-06-16 11:23:00
  • 9844

一些常见的算法,包括选择排序法,冒泡排序法,折半查找法,和函数的使用;

import java.util.Arrays; /**  作者:Darkjazz11 *    日期:2017年11月13日 下午8:37:28 */ /**  *  *一些常...
  • Darkjazz11
  • Darkjazz11
  • 2017-11-13 22:30:27
  • 96

java算法之折半查找

package althorgrim; /** * 1、必须采用顺序存储结果 * 2、关键字必须有序 * @author hanrk-2734 * */ public clas...
  • hanruikai
  • hanruikai
  • 2012-04-19 16:06:00
  • 5389

数组_例题:折半查找法

/*折半查找法!*/# 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:42
  • 1250

C语言 找数字,用(折半查找法或二分查找法)

找数字,用(折半查找法或二分查找法) 注意:基于 有序数组int main() { int arr[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int key = 1;...
  • Monster66jxx
  • Monster66jxx
  • 2016-09-25 14:53:01
  • 3923

折半查找法C++

#include using namespace std; //A为待查找的数组,n为数组元素的个数,v为查找的数字 int scan(int *A,int n,int v) { int min...
  • qllxf
  • qllxf
  • 2013-03-14 21:46:34
  • 644

C语言:折半查找的程序编写

# includeint binary_search(int arr[], int key, int left, int right) { while (left > 1); ...
  • qq_35032155
  • qq_35032155
  • 2017-04-08 16:34:52
  • 1456

Python实现各类数据结构和算法---折半查找

递归和非递归形式实现二分查找 #coding:utf-8 a=[1, 2, 3, 4, 5, 6, 8, 20, 24, 31, 35] #-----------------递归二分查找-------...
  • u010454729
  • u010454729
  • 2014-03-13 22:24:51
  • 1060

c语言程序折半查找算法

  • 2010年05月17日 11:46
  • 1KB
  • 下载
    个人资料
    持之以恒
    等级:
    访问量: 2万+
    积分: 1018
    排名: 5万+