zoukankan      html  css  js  c++  java
  • 怎么能快速的找到你想要的索引(二分法)

    你如何查询自己想要的数据?
    直接用索引遍历查询。如果数据很多呢?比如:100万、1000万、100百万?你要全部遍历完需要多久?会不会一直卡在这里?那取一条数据我们也要去遍历,那会不会浪费资源?那我们就可以用二分法进行解决问题:

    class Program
        {
            static void Main(string[] args)
            {
                #region 二分法
                int[] array = new int[1000];
                for (int i = 0; i < 1000; i++)
                {
                    array[i] = i;
                }
                Console.WriteLine(binaryQuery(array, 786));
                #endregion
                Console.ReadLine();
            }
    
            public static int binaryQuery(int []array,int target)
            {
                int start = 0; //开始值
    
                int end = array.Length - 1;  //结束值
                int middle;  //中间值
                while(start<=end)
                {
                    middle = start + (end - start) / 2;
                    if(array[middle] ==target)
                    {
                        return middle;
                    }
                    else if(array[middle] <target)
                    {
                        start = middle + 1;
                        Console.WriteLine(array[middle] +":小了");
                    }
                    else
                    {
                        end = middle - 1;
                        Console.WriteLine(array[middle] + ":大了");
                    }
                }
                return -1;
            }
        }
    View Code
  • 相关阅读:
    安装ArcGIS Server forJava
    MyEclipse编码设置
    地图切片公式备忘
    source
    逝去的痕迹
    flex build下的svn安装
    spket安装
    flex开发一
    vs2008中的SQL Server Express访问 sql server 2005
    导入不同格式的数据到arcgis中
  • 原文地址:https://www.cnblogs.com/result-xiaoqiang/p/11149456.html
Copyright © 2011-2022 走看看