线性结构--二分查找

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 }

 

以上是关于线性结构--二分查找的主要内容,如果未能解决你的问题,请参考以下文章

学习数据结构笔记 ---查找算法(线性查找,二分查找,插值查找,斐波那契查找)

PHP数据结构-线性查找与二分查找

Java数据结构与算法——线性查找 & 二分查找 & 插值查找

Java数据结构与算法——线性查找 & 二分查找 & 插值查找

PHP数据结构-线性查找与二分查找

在现代 CPU 上,二分查找比线性查找快多少?