zoukankan      html  css  js  c++  java
  • 数组指定元素查找 之 二分法查找

     1 public class ArrayExer3 {
     2     public static void main(String[] args) {
     3         //二分法查找前提:元素值是有序的
     4         int[] arr = {-54,-36,-18,0,15,36,69,109,188,333};
     5 
     6         //查找的目标元素
     7         int dest = 10;
     8 
     9         //搜索范围的首索引
    10         int head = 0;
    11         //搜索范围的尾索引
    12         int end = arr.length-1;
    13         //判断标识
    14         boolean isFlag = true;
    15         //while循环
    16         while (head <= end) {
    17             //查找范围的中间索引(偏左)
    18             int middle = (head + end)/2;
    19             //恰好相等,就找到了
    20             if (arr[middle] == dest) {
    21                 System.out.println("目标元素找到了,其索引是:" + middle);
    22                 //更改判断标识
    23                 isFlag = false;
    24                 // 目标元素找到了,用break来结束while循环
    25                 break;
    26             } else if (arr[middle]  < dest) {  // 目标索引偏大
    27                 //以(中间索引+1) 为搜索范围的首索引,来缩短查找范围
    28                 head = middle+1;
    29             } else {  //目标索引偏小
    30                 //以(中间索引-1) 为搜索范围的尾索引,来缩短查找范围
    31                 end = middle-1;
    32             }
    33         }
    34 
    35         //如果判断标识一直没变,说明目标元素没有找到
    36         if(isFlag){
    37             System.out.println("很抱歉,目标元素找不到的啦!");
    38         }
    39     }
    40 }

  • 相关阅读:
    基于硬件的毕业设计论文的书写
    C语言程序设计课程总结
    嵌入式程序设计第三周成绩汇总
    C第十八次课
    2016-4班平时成绩第9周排名和汇总
    2016-3班平时成绩第9周汇总和排名
    第十七次课大纲
    第十六次课大纲
    2020-02-28
    2020-02-27
  • 原文地址:https://www.cnblogs.com/zui-ai-java/p/14195129.html
Copyright © 2011-2022 走看看