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

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

        }
    }

这里写图片描述

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

相关文章推荐

给定范围的二分法查找

折半查找也称为二分查找,优点是比较次数少,效率高。接下来先贴一段关于给定范围的折半查找代码参考 #define _CRT_SECURE_NO_WARNINGS 1 #include #in...

查找-折半查找(二分查找)

1.折半查找定义 折半查找(Binary Search)技术,又称为二分查找。它的前提是线性表中的记录必须是关键码有序(通常从小到大有序),线性表必须采用顺序存储。折半查找的基本思想是:在有序表中...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

分治法

基本思想 分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同。递归的解这些子问题,然后将各子问题的解合并得到原问题的解。分治法所能解决的问题一般具有以下...

二分查找、折半查找

#include #define N 10 void printA(int A[], char n){ int i = 0; for (i = 0; i < n; i++) ...
  • socho
  • socho
  • 2016-06-15 18:28
  • 266

折半查找(二分查找)

折半查找又叫二分查找,要求查找表本身必须是有序的。查找算法复杂度为O(logn)。 C标准库提供折半查找的库函数,声明如下 bsearch(const void *, const void *, ...

javascript 折半查找/二分查找

javascript 二分查找

二分查找(折半查找) java

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

二分法查找/折半查找

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

折半查找法(二分查找)

折半查找法(二分查找)                 概念:分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表。因此,折半查找方法适用于不经常变动而...

折半查找(二分查找)

package arrays; public class HalfSerch { /* * 1,要查找的数据源必须采用顺序存储方式,比如数组的形式 2,要查找的数据必须按...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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