二分查找又称折半查找,它是一种效率较高的查找方法。
二分查找要求:线性表是有序表,即表中结点按关键字有序,并且要用向量作为表的存储结构。不妨设有序表是递增有序的。
二分查找java代码
1 package com.feimao.com.feimao.a2.test; 2 3 import java.util.Arrays; 4 5 public class BinarySerach { 6 public static void main(String[] args){ 7 int[] arr = new int[]{1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9}; 8 System.out.println(Arrays.toString(arr)); 9 //目标元素 10 int target = 2; 11 int begin = 0; 12 int end = arr.length-1; 13 int mid = (begin + end)/2; 14 //记录目标位置 15 int index = -1; 16 while(true){ 17 //判断中间这个元素是不是要查找的元素 18 if(arr[mid] == target){ 19 index = mid; 20 break; 21 }else{ 22 //判断中间这个元素是不是比目标元素大 23 if(arr[mid] > target){ 24 //把结束位置调整到中间位置的前一个位置 25 end = mid - 1; 26 }else{ 27 //把开始位置调整到中间位置的后一个位置 28 begin = mid + 1; 29 } 30 //取出新的中间位置 31 mid = (begin + end)/2; 32 } 33 } 34 System.out.println("index " + index); 35 } 36 }
原文地址:https://www.cnblogs.com/feimaoyuzhubaobao/p/10153152.html
时间: 2024-10-10 06:50:28