风也温柔

计算机科学知识库

二分查找算法 java 查找算法_02_二分查找(附java和python语言的编程实现)

  二分查找 基本思想

  二分查找是基于有序表查询的一种查找算法,二分的是意思是每次缩小查找的范围来加快查找速度二分查找算法 java二分查找算法 java 查找算法_02_二分查找(附java和python语言的编程实现),前提是查找的数组一定的得是有序的

  图解示例

  在这里插入图片描述

  编码提要

  编码的过程中二分查找算法 java,注意向左向右递归时,相应参数的设定

  java语言编程实现

<p><pre>package com.cc.searchcollection;
/**

  • @Classname Code_02_BinarySearch
  • @Description TODO
  • @Date 2020/3/3 13:50
  • @Created by dreamBreathing
    */

public class Code_02_BinarySearch {

public static void main(String[] args) {
    int[] arr = {1, 3, 5, 7, 9, 12};
    int resultIndex = binarySearch(arr, 0, arr.length-1, 7);
    if (resultIndex != -1) {
        System.out.println("找到啦,下标为" + resultIndex);
    } else {
        System.out.println("数组中没有目标数");
    }
    System.out.println(resultIndex);
}
public static int binarySearch(int[] arr, int left, int right, int targetVal) {
    if (left > right) {
        return -1;
    }
    int mid = (left + right) / 2;
    int midVal = arr[mid];
    if (targetVal > midVal) {//向右递归查找
        return binarySearch(arr, mid + 1, right, targetVal);
    } else if (targetVal  right:
    return -1
mid = (left + right) // 2
mid_value = tag_list[mid]
if target > mid_value:
    return binary_search(tag_list, mid + 1, right, target)
elif target