折半查找

来源:互联网 发布:制作图表的软件 编辑:程序博客网 时间:2024/05/29 08:49
static void Main(string[] args)
        {       
            int[] data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
            int position = Search(data,12, 12);
            Console.WriteLine(position);
            Console.ReadKey();

        }

    /// <summary>
        /// 
        /// </summary>
        /// <param name="data">数据</param>
        /// <param name="key">要找找的数据</param>
        /// <param name="lenth">数组的长度</param>
        /// <returns></returns>
        public static int Search(int[] data, int key, int lenth)
        {
            int index = lenth/2;
            if (data[index] < key)
            {
                return Search(data, key, index + data.Length);
            }
            else if(data[index] > key)
            {
                return Search(data, key, index +1);
            }
            else if(data[index]==key)
            {
                return index;
            }
            return -1;
        }