编程之美书摘

Posted Hello Long

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程之美书摘相关的知识,希望对你有一定的参考价值。

static void Main(string[] args)
        {
            char[] arr = new[] { a, b, c, d, e};
            char v = d;
            var index = BiSearch(arr, 0, 4, v);
            Console.WriteLine(index);

            char[] arr2 = new[] {  b, c, d, e, f };
            char v2 = a;
            var index2 = BiSearch(arr2, 0, 4, v2);
            Console.WriteLine(index2);
            Console.Read();
        }


        static int BiSearch(char[] arr, int b, int e, char v)
        {
            int minIndex = b, maxIndex = e, midIndex;

            //循环结束有两种情况:
            //若minIndex为偶数则minIndex == maxIndex
            //否则就是minIndex == maxIndex - 1
            while (minIndex < maxIndex - 1)
            {
                midIndex = minIndex + (maxIndex - minIndex)/2;
                if (arr[midIndex].CompareTo(v) <= 0)
                {
                    minIndex = midIndex;
                }
                else
                {
                    //不需要midIndex - 1,防止minIndex == maxIndex
                    maxIndex = midIndex;
                }
            }

            if (arr[maxIndex].CompareTo(v) == 0)
            {
                return maxIndex;
            }
            else if (arr[minIndex].CompareTo(v) == 0)
            {
                return minIndex;
            }
            else
            {
                return -1;
            }
        }

 

以上是关于编程之美书摘的主要内容,如果未能解决你的问题,请参考以下文章

代码之美:如何让编程成为一门艺术?

编程之美-线下分享总结篇

《Java并发编程之美》(翟陆续著)高清pdf

编程之美找符合条件的整数

设计模式之美——封装,继承,多态的意义

《编程之美》practice