查找算法复习(1)--二分查找法
来源:互联网 发布:胎动检测的软件 编辑:程序博客网 时间:2024/05/17 00:15
二分查找法要求被查找的线性表已经排序。
每一次查找,按中间索引把表分为左右两部分,通过对比中间值与目标值的大小,决定下一次查找在左表还是右表,直到无法再分割。
1 public static int BinarySearch(string[] datalist, string key) 2 { 3 int low = 0; 4 int high = datalist.Length - 1;//两个下标,决定查找的区间 5 int middle; 6 while (low <= high)//无法再分割就结束 7 { 8 middle = (low + high) / 2;//中间下标 9 if (datalist[middle].CompareTo(key) > 0)//与中间值比较,缩小查找区间10 high = middle - 1;11 else if (datalist[middle].CompareTo(key) < 0)12 low = middle + 1;13 else14 return middle;15 }16 return -1;17 }
使用
1 string[] a = new string[] { "khlin", "hzluo", "jjguo", "hhchen", "jxhan", "lxiao", "jsxiao", "wwang", "lsxie", "lwang" }; 2 3 SelectedSort(a); 4 foreach(string stra in a) 5 Console.Write("{0}, ",stra); 6 Console.WriteLine(); 7 string target1 = "jjguo"; 8 Console.WriteLine("{0} index: {1}", target1, BinarySearch(a, target1)); 9 string target2 = "lsxie";10 Console.WriteLine("{0} index: {1}", target2, BinarySearch(a, target2));11 string target3 = "hello";12 Console.WriteLine("{0} index: {1}", target3, BinarySearch(a, target3));
0 0
- 查找算法复习(1)--二分查找法
- 个人算法复习笔记1-二分查找
- 复习数据结构----二分查找算法
- 算法复习之二分查找
- 算法(1)二分查找
- 二分查找算法1
- 一步一步复习数据结构和算法基础-顺序查找+二分查找
- 查找算法 二分查找
- 查找算法:二分查找
- 算法--查找--二分查找
- 查找算法---二分查找
- 复习之二分查找
- 二分查找算法(折半查找算法)
- 二分查找算法(折半查找算法)
- 折半查找算法(二分查找算法)
- 查找算法(2)--二分查找算法
- 搜索算法二分查找法(折半查找法)
- 搜索算法二分查找法(折半查找法)
- windows程序员必备神器-Autoruns
- ubuntu权限窗口闪退
- 如何提高自己的归纳总结能力?
- Git配置文件
- Intellij idea设置快速启动
- 查找算法复习(1)--二分查找法
- Android:新手必备的常用代码片段整理(一)
- VB.NET——宏观把控
- iOS开发时间戳与时间,时区的转换,汉字与UTF8,16进制的转换
- NETのWIN7+IIS 7.5下URLRewriter组件伪静态设置
- webuploader解决不能重复上传问题
- 设计模式-单利
- shell文本过滤编程(七):awk之变量传递
- java File类mkdir()与mkdirs()方法的区别: