21xrx.com
2024-09-17 04:17:30 Tuesday
登录
文章检索 我的文章 写文章
我最近在学习Java的排序算法
2023-06-10 08:11:46 深夜i     --     --
Java 排序 算法

我最近在学习Java的排序算法,发现Java有四种不同的排序方式,今天我就来介绍一下这四种排序方式以及如何实现它们。这篇文章涵盖了排序的基础知识,以及如何使用Java的内置函数库来实现这些算法。三个

Java中有四种常见的排序算法:冒泡排序、选择排序、插入排序和快速排序。下面我将分别讲解这四种排序方式:

1. 冒泡排序

冒泡排序通过比较相邻元素并交换它们来实现排序。它遍历整个列表,将相邻元素进行比较,如果它们的顺序错误,就交换它们。通过这种方式,每个元素都会在它应该出现的位置上。以下是一个使用Java实现冒泡排序的例子:


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]) {

        int temp = arr[j];

        arr[j] = arr[j+1];

        arr[j+1] = temp;

      }

    }

  }

}

2. 选择排序

选择排序在每个迭代中选择一个最小或最大元素,并将其放置在正确的位置。选择排序需要两个嵌套的循环,在每次循环中,它将第i个元素与其余元素进行比较,并将最小的元素放在第i个位置。以下是一个使用Java实现选择排序的例子:


public static void selectionSort(int[] arr) {

  int n = arr.length;

  for (int i = 0; i < n-1; i++) {

    int minIndex = i;

    for (int j = i+1; j < n; j++) {

      if (arr[j] < arr[minIndex])

        minIndex = j;

      

    }

    int temp = arr[minIndex];

    arr[minIndex] = arr[i];

    arr[i] = temp;

  }

}

3. 插入排序

插入排序逐个地将一个元素插入到已排序的元素列表中。对于插入排序,我们假设前i个元素已经是排好序的。接下来我们将第i+1个元素插入到正确的位置中。以下是一个使用Java实现插入排序的例子:


public static void insertionSort(int[] arr) {

  int n = arr.length;

  for (int i = 1; i < n; i++) {

    int j = i-1;

    int key = arr[i];

    while (j >= 0 && arr[j] > key) {

      arr[j+1] = arr[j];

      j = j-1;

    }

    arr[j+1] = key;

  }

}

4. 快速排序

快速排序是一种快速而高效的排序算法。它使用分治的思想,将待排序的元素分成两个子问题:小于等于基准值的元素和大于基准值的元素。接着,它递归地处理这两个子数组。以下是一个使用Java实现快速排序的例子:


public static void quickSort(int[] arr, int low, int high) {

  if (low < high) {

    int pi = partition(arr, low, high);

    quickSort(arr, low, pi-1);

    quickSort(arr, pi+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++;

      int temp = arr[i];

      arr[i] = arr[j];

      arr[j] = temp;

    }

  }

  int temp = arr[i+1];

  arr[i+1] = arr[high];

  arr[high] = temp;

  return i+1;

}

以上是Java中的四种排序算法。排序算法是计算机科学中的重要主题,如果你也对算法感兴趣,那么强烈建议你学习这些算法,并使用Java实现它们。这将有助于您理解计算机科学中的核心思想,还提高了您的编程技能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复