线性结构--二分查找
Posted feimaoyuzhubaobao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性结构--二分查找相关的知识,希望对你有一定的参考价值。
二分查找又称折半查找,它是一种效率较高的查找方法。
二分查找要求:线性表是有序表,即表中结点按关键字有序,并且要用向量作为表的存储结构。不妨设有序表是递增有序的。
二分查找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 }
以上是关于线性结构--二分查找的主要内容,如果未能解决你的问题,请参考以下文章
学习数据结构笔记 ---查找算法(线性查找,二分查找,插值查找,斐波那契查找)
Java数据结构与算法——线性查找 & 二分查找 & 插值查找