原理很简单,二叉树的原理
/// <summary> /// 二分查找 /// </summary> /// <param name="array">待查找的数组</param> /// <param name="val">要查找的数</param> public static void erfen(int[] array, int val) { int leftIndex = 0;//查找起始下标 int rightIndex = array.Length - 1;//数组终点下标,即最坏情况 int currentIndex = 0;//当前查找的下标 Array.Sort(array);//先升序排序 //等起始<=终点时,可以继续查找 while (leftIndex <= rightIndex) { currentIndex = (leftIndex + rightIndex) / 2; if (array[currentIndex] < val) { leftIndex = currentIndex + 1; Console.WriteLine(string.Format("下标{1}没找到!往后找!", currentIndex + 1,currentIndex)); } else if (array[currentIndex] > val) { rightIndex = currentIndex - 1; Console.WriteLine(string.Format("下标{1}没找到!往前找!", currentIndex - 1, currentIndex)); } else { Console.WriteLine(string.Format("找到了!{0}在数组中的下标是{1}", val, currentIndex)); break; } } Console.WriteLine("不在数组中"); }
原文:https://www.cnblogs.com/luyShare/p/14797293.html