21xrx.com
2025-03-15 11:45:12 Saturday
文章检索 我的文章 写文章
我分享一下Java的几种排序算法及其代码
2023-06-17 02:25:35 深夜i     9     0
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. 快速排序

快速排序是一种基于分治思想的高效排序算法,它的核心思路是通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字都比另一部分记录的关键字小。以下是Java代码实现:

public static void quickSort(int[] arr, int left, int right) {
  if (left >= right) return;
  int i = left, j = right, base = arr[left];
  while (i < j) {
    while (i < j && arr[j] >= base) j--;
    while (i < j && arr[i] <= base) i++;
    if (i < j) {
      int temp = arr[i];
      arr[i] = arr[j];
      arr[j] = temp;
    }
  }
  arr[left] = arr[i];
  arr[i] = base;
  quickSort(arr, left, i - 1);
  quickSort(arr, i + 1, right);
}

### 3. 归并排序

归并排序分治策略的典型应用,它的核心思路是将待排记录序列拆分成两个子序列,对这两个子序列分别进行排序,最后将两个排序好的子序列合并成一个有序序列。以下是Java代码实现:

public static void mergeSort(int[] arr, int left, int right) {
  if (left >= right) return;
  int mid = (left + right) / 2;
  mergeSort(arr, left, mid);
  mergeSort(arr, mid + 1, right);
  int[] temp = new int[right - left + 1];
  int i = left, j = mid + 1, k = 0;
  while (i <= mid && j <= right) {
    if (arr[i] <= arr[j]) {
      temp[k++] = arr[i++];
    } else {
      temp[k++] = arr[j++];
    }
  }
  while (i <= mid) temp[k++] = arr[i++];
  while (j <= right) temp[k++] = arr[j++];
  System.arraycopy(temp, 0, arr, left, temp.length);
}

以上就是我给大家分享的几种Java排序算法及其代码实现,希望对大家有所帮助。如果你有更好的实现方法或者更好的建议,欢迎在评论区留言。

  
  

评论区

请求出错了