算法-二分法

    科技2022-08-18  106

    ##来个题目练习一下吧 使用二分法来快速判断随机数在不在该数组内 二分法也叫折半法,是一种在有序数组中查找特定元素的算法。

    //先设一组有序数组,再设随机数组v import java.util.Random;//导包必不可少哦 Random rand = new Random(); int[] arr = {3,7,13,18,19,21,24,26,29,31,32,38,41,44,45,47,50}; int v = rand.nextInt(50) + 1; int begin=0,end =arr.lenght-1,mid=(end+begin)/2,ix=-1;//ix=-1 while(begin<=end){ if(v<arr[mid]) end=mid-1; else if(v>arr[mid]) begin=mid+1; else{ ix=mid; break;//跳出循环 } mid =(end+begin)/2; } System.out.println(v); System.out.println(v+ (ix>-1 ? "是" +ix :"不是"));

    从if判断可以看出,end是直接缩小一半为mid-1.同理begin=mid+1; 这样查找可以大大缩小范围。从而更好的判断该数值是不是这个数组内的,最后一个三元运算符判断该数值在第几位。

    Processed: 0.018, SQL: 9