java对数组怎么排序

内置排序算法(Arrays.sort())使用快速排序算法对数组进行排序。其他算法包括自定义排序算法(冒泡、插入、选择、快速、归并),使用 Lambda 表达式进行对象数组排序的 Arrays.sort() 方法,以及选择排序算法的复杂度分析。

Java 如何对数组进行排序

对数组进行排序是 Java 中一项常见的任务。本文将探讨使用 Java 对数组进行排序的不同方法。

内置排序算法

  • Arrays.sort():这是最简单的排序方法,它使用快速排序算法对基本类型和对象数组进行排序。

自定义排序算法

  • 冒泡排序:通过比较相邻元素并交换它们的位置来进行排序。
  • 插入排序:通过将数组划分为已排序和未排序的部分来进行排序。
  • 选择排序:通过在数组中找到最小元素并将其移动到开头来进行排序。
  • 快速排序:通过选择一个基准点将数组划分为较小和较大的子数组来进行排序。
  • 归并排序:通过将数组递归地分成较小的子数组并合并已排序的子数组来进行排序。

Lambda 表达式排序

  • Arrays.sort() 方法:可以与 Lambda 表达式一起使用,以根据自定义比较器对对象数组进行排序。

示例:

// 基本类型数组排序
int[] numbers = {5, 2, 8, 3, 1};
Arrays.sort(numbers);

// 对象数组排序
Person[] people

= { new Person("John", 30), new Person("Alice", 25), new Person("Bob", 35) }; Arrays.sort(people, (a, b) -> a.getAge() - b.getAge());

选择排序算法

public static void selectionSort(int[] arr) {
    for (int i = 0; i < arr.length - 1; i++) {
        int minIndex = i;
        for (int j = i + 1; j < arr.length; j++) {
            if (arr[j] < arr[minIndex]) {
                minIndex = j;
            }
        }
        int temp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
    }
}

复杂度:

  • 时间复杂度:O(n^2)
  • 空间复杂度:O(1)