0
点赞
收藏
分享

微信扫一扫

二分法算法查找的实现

二分法检索(binary search)又称折半检索
二分法算法查找的实现_二分法

package com.yqq.app11;

import java.util.Arrays;

/**
* @Author yqq
* @Date 2021/11/20 17:55
* @Version 1.0
*/
public class TestBinarySearch {
public static void main(String[] args) {
int[] values = {20,12,8,50,30,100,80,9,7,40,10};
//要查找的数
int serachValue = 10;
//二分查找之前一定要对数组元素排序
Arrays.sort(values);
System.out.println(Arrays.toString(values));
System.out.println(serachValue+"元素索引:"+binarySearch(values,serachValue));
}

private static int binarySearch(int[] values, int serachValue) {
int startIndex = 0;
int endIndex = values.length - 1;
while (startIndex < endIndex){
int middle = (startIndex + endIndex)/2;
if(serachValue == values[middle])
return middle;//返回查询到的索引位置
if(serachValue > values[middle])
startIndex = middle + 1;
if(serachValue < values[middle])
endIndex = middle - 1;
}
return -1;//循环完毕,说明没找到,返回-1
}
}
[7, 8, 9, 10, 12, 20, 30, 40, 50, 80, 100]
10元素索引:3


举报

相关推荐

0 条评论