算法学习之java实现二分查找

来源:互联网 发布:文本发声软件 编辑:程序博客网 时间:2024/05/20 00:14

二分查找:

思想:针对有序的数组,将待查找的数跟数组的中间值进行比较,来确定更小的范围的思想。

代码实现:

package com.scy.arithmetic;import java.util.Arrays;/* * 二分查找:思想相对有序的数组而言,将待查找的数跟数组的中间值进行比较,如果比中间值小,则从开始到中间值前边的那个范围的中间值进行比较 * 如果等于中间值,则返回中间值坐标,如果大于中间值,则将范围锁定在中间值后边到结尾的范围继续中间值比较 */public class MiddleSelect {public static void main(String[] args) {int[] a=new int[20];for (int i = 0; i < 20; i++) {a[i]=(int)(Math.random()*(100-1+1)+1);}//将a数组进行排序Arrays.sort(a);System.out.println(Arrays.toString(a));//此处如果存在相同值的情况,则会返回第一个查到的值的坐标new MiddleSelect().middleSelect(a, 0, a.length-1, a[3]);}public void middleSelect(int[] a,int start,int end,int standard){if(start<end){int middle=(start+end)/2;if(a[middle]>standard){middleSelect(a, start, middle-1, standard);}else if(a[middle]<standard){middleSelect(a, middle+1, end, standard);}else{System.out.println(middle);}}else{System.out.println("查找的值数值中不存在");}}}


0 0
原创粉丝点击