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

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

        }
    }

这里写图片描述

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

相关文章推荐

Java实现折半查找(二分查找)的递归和非递归算法

Java二分查找实现,欢迎大家提出交流意见. /** *名称:BinarySearch *功能:实现了折半查找(二分查找)的递归和非递归算法. *说明: * 1、要求所查找的数组已有序,并且其...
  • EthanQ
  • EthanQ
  • 2012年01月16日 20:50
  • 3924

Java实现折半查找(二分查找)的递归和非递归算法

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://wintys.blog.51cto.com/425414/94051 ...
  • DWFhxl
  • DWFhxl
  • 2013年10月16日 20:20
  • 2313

Java实现折半查找(二分查找)的递归和非递归算法

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://wintys.blog.51cto.com/425414/94051     ...

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

二分查找,又叫折半查找。记得第一次接触是在大学数据结构的课堂上(怀念大学青葱的岁月),毕业后,由于工作性质原因,除了准备面试,极少书写此算法,一时间,花一定时间也未必能完整地写出。折半查找的思路如其名...
  • user020
  • user020
  • 2015年05月09日 06:19
  • 206

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

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 package cn.edu.n...

十.用C语言实现查找算法 (1)顺序查找;(2)二分查找(折半查找);(3)二叉排序树;(4)哈希查找

程序名称:Search.cpp // 程序功能:采用结构化方法设计程序,实现多种查找算法。 // 程序作者:*** // 最后修改日期:2011-3-3 #include"iostream" #inc...

采用二分查找(即折半查找)的方法实现查找

采用二分查找的方法实现查找 (1)定义顺序表的存储结构; (2)实现顺序表上二分查找; 代码实现: #include #include #include #include...

【数据结构与算法】【查找】折半查找(二分查找)的代码实现

折半查找(Binary Search):也称为二分查找。它的前提是:1、线性表中的记录必须是关键字有序(通常是从小到大有序);2、线性表必须采用顺序存储。 折半查找的基本思想是:在有序表中,取中间记...
  • jay_yin
  • jay_yin
  • 2014年11月04日 19:38
  • 1912
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:折半查找(二分查找)实现
举报原因:
原因补充:

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