005-Arrays类

第三阶段 JAVA常见对象的学习

第一章 常见对象——Arrays类

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

常用方法:

//把数组转成字符串
public static String toString(int[] a)

//对数组排序(快速排序法)
public static void sort(int[] a)

//二分查找
public static int binarySearch(int[] a, int key )
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));
    }
}

二分查找

/*
 * 查找:
 *      基本查找:数组元素无序(从头找到尾)
 *      二分查找:数组元素有序
 * 分析:
 *      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;
    }
}

结尾:

如果内容中有什么不足,或者错误的地方,欢迎大家给我留言提出意见, 蟹蟹大家 !^_^

如果能帮到你的话,那就来关注我吧!(系列文章均会在公众号第一时间更新)

在这里的我们素不相识,却都在为了自己的梦而努力 ❤

一个坚持推送原创Java技术的公众号:理想二旬不止


   转载规则


《005-Arrays类》 BWH_Steven 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录