using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 二分搜索算法1
{
class Program
{
static void Main(string[] args)
{
int[] a = new int[4] { 3, 5, 7, 9 };
Console.WriteLine("7在数组的第{0}个位置上", BinarySearch(a, 7, 4));
///数组从零号位开始
}
/// <summary>
/// 二分搜索算法(折半查找)
/// 再给定以排好顺序的数组中才能使用
/// </summary>
/// <param name="a"></param>数组名称
/// <param name="x"></param>所查询的元素
/// <param name="n"></param>数组的长度
/// <returns></returns>
static int BinarySearch(int[] a, int x, int n)
{
int left = 0;
int right = n-1 ;
while (left <= right) ///记得加等于号哦
{
int middle = (left + right) / 2; ///不断进行分半
if (x == a[middle])
{
return middle; ///返回的是元素在数组中的位置
}
if (x > a[middle])
{
left = middle + 1;
}
else
{
right = middle - 1;
}
}
return -1; ///没找到就返回-1
}
}
}