C#数据结构中常用的算法1:二分法

代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DataOperateCsharp
{
class Program
{
static void Main(string[] args)
{
int[] array=new int[18];
for (int i = 0; i < array.Length; i++)
{
array[i]
= i+3;
}
int numToFind = 7;//查找7在数组中的位置
int numIndexInArray=HalfFind(array, numToFind);
Console.WriteLine(numIndexInArray.ToString());
Console.Read();

}
/// <summary>
/// 二分查找法
/// </summary>
/// <param name="arr">数组</param>
/// <param name="value">要查找的数值</param>
/// <returns></returns>
static int HalfFind(int[] arr,int value)
{
int low = 0;
int high = arr.Length;
while (low<=high)
{
int mid = (high + low) / 2;
if (arr[mid] == value)
return mid;
else if (arr[mid] > value)
{
high
= mid - 1;
}
else
{
low
= mid + 1;
}
}
return 0;
}
}
}

 

posted @ 2010-06-07 22:06  chunchill  阅读(536)  评论(0)    收藏  举报