您的位置:首页 > 其它

二分查找

2011-10-12 11:52 183 查看
using System;
using System.Collections.Generic;

namespace 二分查找
{
class Program
{
static void Main(string[] args)
{
List<Int32> l = new List<int>();
/*在值类型的情况下
List<Int32>的速度比arraylist快了许多,arrlist.add方法为:
* public virtual int Add (Object value)可见为值类型时有装箱操作(
* 非常消耗资源,内存,GC等),而且list操作比arraylist灵活
* */
l.Add(22);
l.Add(90);
l.Add(67);
l.Add(15);
l.Add(98);
l.Add(34);
l.Add(58);
l.Add(84);
l.Add(76);
l.Add(19);
l.Add(40);
foreach (int t in l)
{
Console.Write(t + " ");
}
Console.WriteLine(" ");
l.Sort();           //将数组按从小到大排列
foreach (int t in l)
{
Console.Write(t + " ");
}
Console.Write("\n");
int j = BinSearch(l, 34);
xians(j);
j = BinSearch(l, 33);
xians(j);
Console.ReadLine();
}
public static int BinSearch(List<Int32> l, int t)
{
int bot = 0, top = l.Count - 1, mid;    //二分查找
while (bot <= top)
{
mid = (bot + top) / 2;
if (l[mid] == t) return mid;
else
{
if (l[mid] < t) {  bot = mid + 1;}
else top = mid - 1;
}
}
return -1;
}
public static void xians(int i)
{
if (i == -1) Console.WriteLine("数组中没有这个元素");
else Console.WriteLine("元素为第{0}个元素", i+1);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: