zoukankan      html  css  js  c++  java
  • c#-折半查找、二分算法-算法

    折半搜索,也称二分查找算法二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。

    1.搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;

    2.如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。

    3. 如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。

            /// <summary>
            /// 折半查找、二分算法
            /// /数组必须按照一定的顺序
            /// </summary>
            /// <param name="min">最小值</param>
            /// <param name="max">最大值</param>
            /// <param name="num">查找的对象</param>
            /// <param name="arr"></param>
            /// <returns></returns>
            public static int Twoselect(int min,int max,int num,int[] arr)
            {
                if (min == max) return -1;
                int mid = (min + max) / 2;
                if (Convert.ToInt32(arr[mid]) == num) return mid;
                else if (Convert.ToInt32(arr[mid])<num)
                {
                    return Twoselect(mid + 1, max, num,arr);
                }
                else
                {
                    return Twoselect(mid , mid-1, num, arr);
                }
                
            }

    实例:

                int[] arr =new int[] { 1,2,3,4,5,6,7,8,9,10};
                var a = Twoselect(1,10, 9, arr);
                Console.WriteLine(a);
                Console.ReadKey();//8
  • 相关阅读:
    iOS 色值 转换 干货
    控制器view及UIApplication的生命周期
    runtime认识及其用处
    block底层实现原理
    iOS开发,你不得不知的数据存储---干货
    UIImageView(UIImage)的那些细节
    UIButton那些应用细节
    使用gevent写异步代码
    数据分析三剑客之pandas
    数据分析之numpy
  • 原文地址:https://www.cnblogs.com/mvpbest/p/15471264.html
Copyright © 2011-2022 走看看