常用算法——二分查找(非递归)
二分查找(非递归) 基本介绍 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表 必须采用顺序存储结构 ,而且表中元素按关键字 有序排列 。 首先,假设表中元素是按 升序排列 ,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。 比较次数 a<log 2 n<b 算发时间复杂度 O(n)=O(log 2 n) 代码实现 以arr = { 1, 3, 8, 10, 11, 67, 100 }为例 public class BinarySerch { public static void main ( String [ ] args ) { int [ ] arr = { 1 , 3 , 8 , 10 , 11 , 67 , 100 } ; // 测试二分查找 int index = binarySearch ( arr , 1 ) ; System . out . println ( "index=" + index + " 值【" + arr [ index ] + "】" ) ; } /** *