第三阶段-Java常见对象:【第五章 Arrays类】

2019-08-09 15:50:52 浏览数 (2)

(一)

Arrays类

Arrays:针对数组进行操作的工具类,比如排序和查找

常用方法:

代码语言:javascript复制
  //把数组转成字符串
  public static String toString(int[] a)
  
  //对数组排序(快速排序法)
  public static void sort(int[] a)
      
  //二分查找
  public static int binarySearch(int[] a, int key )
代码语言:javascript复制
  import java.util.Arrays;
  
  public class ArraysDemo {
      public static void main(String[] args) {
          int[] arr = {20, 55, 33, 2, 7};
          System.out.println("排序前:"   Arrays.toString(arr));
          Arrays.sort(arr);
          System.out.println("排序后:"   Arrays.toString(arr));
          System.out.println("二分查找:"   Arrays.binarySearch(arr,key));
      }
  }

二分查找

代码语言:javascript复制
  /*
  * 查找:
  *      基本查找:数组元素无序(从头找到尾)
  *      二分查找:数组元素有序
  * 分析:
  *      A:定义最大索引,最小索引
  *      B:计算出中间索引
  *      C:拿中间索引的值和要查找的值做比较
  *          相等:就返回当前的中间索引
  *          不相等:
  *                中间值大 ———— 左边找
  *                中间值小 ———— 右边找
  *      D:重新计算出中间索引
  *                 中间值大 ———— 左边找
  *                               max = mid - 1
  *                 中间值小 ———— 右边找
  *                               min = mid   1
  *      B:回到 B
  */
  
  public class binarySearch {
      public static int getIndex(int[] arr, int value) {
  //定义最大索引,最小索引
          int max = arr.length - 1;
          int min = 0;
  
  //计算中间索引
          int mid = (max   min) / 2;
  
  //拿中间的索引值和要查找的值进行比较
          while (arr[mid] != value) {
              if (arr[mid] > value) {
                  max = mid - 1;
              } else if (arr[mid] < value) {
                  min = mid   1;
              }
  
              if (min > max) {
                  return -1;
              }
  
              mid = (max   min) / 2;
          }
          return mid;
      }
  }

0 人点赞