首页 > 代码库 > 二分查找or折半查找
二分查找or折半查找
1 package com.gxf.search; 2 3 /** 4 * 测试折半查找or二分查找 5 * @author xiangfei 6 * 7 */ 8 public class BiSearch { 9 10 /**11 * 非递归实现,从第1个元素开始查找12 * @param array13 * @param k14 * @return 0 查找失败15 */16 public int biSearch(int array[], int k){17 int low = 1;18 int high = array.length - 1;19 20 while(low <= high){21 int mid = (low + high) / 2;22 if(k == array[mid]){23 return mid;24 }25 if(k > array[mid]){26 low = mid + 1; 27 }28 else{29 high = mid - 1;30 }31 }32 return 0;33 }34 35 /**36 * 递归实现37 * @param array38 * @param k39 * @param l40 * @param h41 * @return42 */43 public int biSearch(int array[], int k, int l, int h){44 if(l > h){45 return 0 ;46 }47 if(k == array[(l + h) / 2])48 return (l + h) / 2;49 else if(k > array[(l + h) / 2]){50 return biSearch(array, k, (l + h) / 2 + 1, h);51 }52 else{53 return biSearch(array, k, l, (l + h) / 2 - 1);54 }55 }56 57 public static void main(String[] args) {58 BiSearch biSearch = new BiSearch();59 int array[] = {0,1,3,4,5,6,7};60 System.out.println(biSearch.biSearch(array, 5));61 System.out.println(biSearch.biSearch(array, 5, 1, array.length - 1));62 63 }64 65 }
二分查找or折半查找
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。