折半查找(二分查找)实现

原创 2016年08月30日 15:45:34

折半查找是一种在有序数列中快速查找数据的一种方法。
实现基本原理:每次查找前提前确定待查数组的下标范围,然后用m(待查数据)与中间元素比较,如果m大于中间元素则向中间元素与的中间数据上面查;反之则向下面查找。
折半原理图:
这里写图片描述

 static void Main(string[] args)
        {
            int[] a = { 1, 2, 3, 4, 6, 8, 9, 12, 14, 23, 34, 65, 78, 88, 90 };
            int i, flag, low, high, mid, m;
            Console.Write("请输入要查找的数字m:");
            m = Convert.ToInt16(Console.ReadLine());
            low = 0;
            high = 14;
            flag = 0;
            mid = -1;
            while (low <= high)
            {
                mid = (low + high) / 2;
                if (m == a[mid])
                {
                    flag = 1;
                    break;
                }
                else if (m > a[mid])
                {
                    low = mid + 1;
                }
                else
                {
                    high = mid - 1;
                }
            }
                Console.WriteLine("数组为: ");
                for (i = 0; i < a.Length - 1; i++)
                {
                    Console.Write("{0}   ", a[i]);
                }
                Console.WriteLine();
                if (flag == 1)
                    Console.WriteLine("{0}的位置是{1}",m,mid);
                else
                    Console.WriteLine("未找到!");
                Console.ReadKey();

        }
    }

这里写图片描述

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

C#学习笔记—数组的折半查找(二分查找)

//方法类 using System; using System.Collections.Generic; using System.Linq; using System.Text; n...
  • rart2008
  • rart2008
  • 2010年06月18日 00:34
  • 3412

PHP有序表查找----二分查找(折半)

简介:二分查找技术,又称为折半查找。它的前提是线性表中的记录必须是关键码有序(通常从小到达有序),线性表必须采用顺序存储。基本思想:在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,...
  • baidu_30000217
  • baidu_30000217
  • 2016年11月06日 22:09
  • 721

【C/C++】折半查找(二分查找)

一、二分查找 在C和C++里,二分查找是针对有序数组所用的一种快速查找元素的方法。 二、二分查找的条件以及优缺点 条件:针对有序数组(元素从小到大或从大到小) 优点:查询速度较快,时间复杂度为O(n)...
  • qq_31828515
  • qq_31828515
  • 2016年06月30日 17:34
  • 14572

【数据结构】折半查找(二分查找)

折半搜索,也称二分查找算法、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,...
  • kuzuozhou
  • kuzuozhou
  • 2012年09月15日 21:03
  • 1045

java 实现折半(二分)查找

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

PHP实现折半(二分)查找算法

/** * Description:php实现二分查找算法的类 * @author wzy */ class binary_search{ public $arr; public $key;...
  • climb_up
  • climb_up
  • 2013年09月21日 17:21
  • 1567

【数据结构】静态查找之二分查找

【二分查找】           查找(Binary Search),也叫折半查找,是一种静态表查找方法。 【思想】           用给定值与处在表的中间位置的数据元素的键值进行比较,确定给定值...
  • u013036274
  • u013036274
  • 2015年10月16日 10:56
  • 709

编程珠玑中关于二分查找的使用

编程珠玑的第二章给我们提出了这样的一个问题。描述如下:
  • sunyujia23
  • sunyujia23
  • 2014年07月29日 13:47
  • 678

使用递归和非递归两种方法实现二分查找!!!

#include using namespace std; //非递归的方法 int F_BinarySearch(int a[],int n,int Number) { if(a==NULL||...
  • YDZXF
  • YDZXF
  • 2015年03月11日 19:31
  • 840

C语言:递归和非递归实现二分查找

二分查找是将有序数列不断地缩小,直到找到改元素或折半区域的首元素位置高于尾元素位置为止。//递归写二分查找 int BinarySearchD(int arr[], int x, int begin,...
  • TwinkleCapricorns
  • TwinkleCapricorns
  • 2016年12月04日 10:05
  • 480
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:折半查找(二分查找)实现
举报原因:
原因补充:

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