JavaSE数组(八)-数组工具类Arrays
  eZw8kcl3fQWu 2023年11月15日 15 0



文章目录

  • 1.二分查找法
  • 1.1.基本算法
  • 1.2.代码实现
  • 2.数组工具类 Arrays
  • 2.1.数组工具类使用


1.二分查找法

1.1.基本算法

  1. 二分查找又称折半查找,它是一种效率较高的查找方法。
  2. 二分查找要求(前提):
(1)必须采用顺序存储结构 
(2)必须提前按大小有序排列

二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。

  1. 原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后;将要查找的值和数组的中值进行比较,若小于中值则在中值前面找,若大于中值则在中值后面找,等于中值时直接返回。然后依次是一个递归过程,将前半部分或者后半部分继续分解为三部分。

JavaSE数组(八)-数组工具类Arrays_java

1.2.代码实现

public static void main(String[] args) {
		int[] array = { 1, 4, 7, 9, 10, 44, 78, 101, 203, 500 };
		int index = binarySearch(array,78);
		System.out.println(index);
	}

	/*
	 * 循环实现二分查找算法arr 已排好序的数组x 需要查找的数-1 无法查到数据
	 */
	public static int binarySearch(int[] arr, int x) {
		int low = 0;
		int high = arr.length - 1;
		while (low <= high) {
			int middle = (low + high) / 2;
			if (x == arr[middle]) {
				return middle;
			} else if (x < arr[middle]) {
				high = middle - 1;
			} else {
				low = middle + 1;
			}
		}
		return -1;
	}

2.数组工具类 Arrays

  • 在Java中JDK开发库提供了一个专门进行数组操作的工具类Arrays类,方便开发人员对数组进行一些常见操作。
  • 在Java中一个类如果有s结尾,那么这个类一般都是工具类。
  • Arrays类位于 java.util包提供的工具类
    java.util.Arrays类包含了用来操作数组(比如排序和搜索)的各种方法。

2.1.数组工具类使用

  • boolean equals(array1,array2):比较两个数组中的内容是否相同
  • JavaSE数组(八)-数组工具类Arrays_Java基础_02

  • sort(array) : 将数组进行升序排列
public static void main(String[] args) {
        int[] a = {2, 3, 4, 1, 0, 6, 5};
        Arrays.sort(a);
        for (int j = 0; j < a.length; j++) {
            System.out.print(a[j] + " ");
        }
    }
  • String toString(array) :将数组中的元素拼接成一个字符串

JavaSE数组(八)-数组工具类Arrays_Java语法_03

  • void fill(array,val) :把数组中的所有元素替换成一个新的元素
  • copyOf(array,length) 复制一个原数组,得到一个新的数组
  • int binarySearch(array, val) 二分查找法 查询一个元素在数组中所在的下标



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月15日 0

暂无评论

推荐阅读
eZw8kcl3fQWu