java排序从大到小排序怎么排序出来

在Java中,可以使用不同的方法来对数组或集合进行从大到小的排序。以下是一些常见的排序方法:

1. 冒泡排序(Bubble Sort):两两比较相邻元素,如果顺序错误就交换它们,依次重复直到整个数组排序完成。这种方法可以直接在原始数组上进行排序。

public static void bubbleSort(int[] arr) {
    int n = arr.length;
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (arr[j] < arr[j + 1]) {
                // 交换arr[j]和arr[j+1]
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

2. 选择排序(Selection Sort):每次循环找到未排序部分中的最大元素,然后将其放置到已排序部分的开头。这种方法需要使用额外的空间来存储已排序的子数组。

public static void selectionSort(int[] arr) {
    int n = arr.length;
    for (int i = 0; i < n - 1; i++) {
        int maxIndex = i;
        for (int j = i + 1; j < n; j++) {
            if (arr[j] > arr[maxIndex]) {
                maxIndex = j;
            }
        }
        // 交换arr[i]和arr[maxIndex]
        int temp = arr[i];
        arr[i] = arr[maxIndex];
        arr[maxIndex] = temp;
    }
}

3. 插入排序(Insertion Sort):将未排序的元素依次插入到已排序部分的正确位置。类似于打牌时按顺序插入卡牌。

public static void insertionSort(int[] arr) {
    int n = arr.length;
    for (int i = 1; i < n; i++) {
        int key = arr[i];
        int j = i - 1;
        while (j >= 0 && arr[j] < key) {
            arr[j + 1] = arr[j];
            j--;
        }
        arr[j + 1] = key;
    }
}

4. 快速排序(Quick Sort):选取一个基准元素,将数组分为两个子数组,一个包含比基准元素大的元素,一个包含比基准元素小的元素,然后递归对子数组进行排序。

public static void quickSort(int[] arr, int low, int high) {
    if (low < high) {
        int pivotIndex = partition(arr, low, high);
        quickSort(arr, low, pivotIndex - 1);
        quickSort(arr, pivotIndex + 1, high);
    }
}

public static int partition(int[] arr, int low, int high) {
    int pivot = arr[high];
    int i = low - 1;
    for (int j = low; j < high; j++) {
        if (arr[j] >= pivot) {
            i++;
            // 交换arr[i]和arr[j]
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }
    // 交换arr[i+1]和arr[high]
    int temp = arr[i + 1];
    arr[i + 1] = arr[high];
    arr[high] = temp;
    return i + 1;
}

以下是使用这些排序方法对数组从大到小进行排序的示例:

int[] arr = {5, 2, 8, 1, 9};
bubbleSort(arr);
// or selectionSort(arr);
// or insertionSort(arr);
// or quickSort(arr, 0, arr.length - 1);

System.out.println("从大到小排列:");
for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

输出结果为:

从大到小排列:
9
8
5
2
1

版权申明:财旺号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 1790309299@qq.com 举报,一经查实,本站将立刻删除。

(0)
小二的头像小二

相关推荐

  • word2013合并字符

    在Microsoft Word 2013中,合并字符是将两个或多个字符连接成一个整体。它可以用于创建特殊的符号、图形、连字符或其他具有特殊视觉效果的文本。 以下是在Word 2013中合并字符的详细步骤: 1. 打开Microsoft Word 2013,并创建一个新的文档。 2. 在文档中输入要合并的字符。您可以输入字母、数字、符号、空格等。 3. 选择第…

    2023年11月3日
    00
  • 截取字符串前几位java

    在Java中,你可以使用`substring`方法来截取字符串的前几位。`substring`方法接受两个参数,即开始索引和结束索引。 以下是两种常用的方法来截取字符串的前几位: 方法一:使用`substring`方法 String str = “Hello World”; int endIndex = 5; // 截取的结束索引 String result…

    2024年2月15日
    00
  • python中if语句后冒号报错

    在Python中,如果在if语句后面忘记了加上冒号,会导致语法错误。在Python中,冒号(:)用于标识代码块的开始,所以在if语句后面必须加上冒号才能正确地定义代码块。 例如,在下面这段代码中,如果忘记在if语句后面加上冒号,就会导致语法错误: if x > 5 # 没有加上冒号 print(“x大于5”) 正确的写法应该是: if x > 5…

    2024年3月2日
    00
  • 苍耳靠什么传播种子的(苍耳的种子靠什么传播)

    苍耳靠动物和风传播种子。苍耳是一种草本植物,它的种子主要是通过风传播的。苍耳的果实是一种小型颖果,外层有许多长毛,成熟后很容易随着风吹动而脱离植株,飘荡在空气中。这些果实上的毛发可以增加空气阻力,使其更容易被风吹起,并随着风向远离母株。当它们落地后,果实表面的长毛还能够帮助种子在地面上停留,从而有机会生根发芽。 苍耳最高可长到1米左右,但全株都有毒,尤其是苍…

    2023年5月9日
    00
  • 前女友有男朋友了应该怎么办

    面对前女友已经有了新男朋友,可能会让人感到失落、沮丧或困惑。这种情况下,你可以考虑以下几点来处理: 接受现实:首先要接受这个事实,并意识到你们的关系已经结束。尽管会感到不舒服或失落,但接受现实是往前迈出的第一步。 保持冷静:尽量保持冷静和理智,不要过于情绪化或冲动。这意味着避免通过恶言相向或试图破坏她的新关系来释放自己的情绪。 尊重她的选择:尊重前女友的决定…

    2024年3月12日
    00

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注