一、概念(复杂度O(㏒?n))
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法,可以理解为一直对折。但是,折半查找要求线性表必须采用顺序存储结构(优点:随机存取表中元素、储存密度大。缺点:插入和删除操作需要移动元素。),而且表中元素按关键字有序排列。
二、要求
/** * @author 作者 ki16: * @version 创建时间:2021年5月12日 下午5:26:05 * */ public class DichotomyAlgorithm { public static void main(String[] args) { //测试 int[] arr = {1, 2, 3, 4, 5, 8, 10, 11, 67, 100}; int index = binarySearch (arr, 10); System.out.println ("index=" + index); } // 二分查找 public static int binarySearch(int[] arr, int target) { int left = 0; int right = arr.length - 1; while (left <= right) {// 说明可继续查找 int mid = (left + right) / 2; if (arr[mid] == target) { return mid; } else if (arr[mid] > target) { // 需要向左查找 right = mid - 1; } else { // 需要向右查找 left = mid + 1; } } return -1; } }
原文:https://www.cnblogs.com/ki16/p/14760868.html