二分查找
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); } } }
相关文章推荐
- 二分查找之Java实现
- 二分查找
- 有序数组中的二分查找
- STL中的二分查找——lower_bound 、upper_bound 、binary_search
- 基本的二分查找
- 二分查找的灵活应用
- CodeForces #379(734A|734B|734C|734D|734E|734F)|二分查找|模拟|树的半径|位运算
- 开始学数据结构——(五):二分查找 ,非递归
- 【二分查找】用C语言实现一个有序数组的二分查找
- 数据结构实验之查找四:二分查找
- 分治法------二分查找
- 关于二分查找的思想
- 二分查找
- 【java】二分查找
- 算法学习---对象类型的数组二分查找实现
- 二分查找 java递归和非递归实现
- leetcode 483. Smallest Good Base 最小基数使为1 + 二分查找
- 有序数组中的二分查找
- js实现二分查找
- Python二分查找