21xrx.com
2025-07-16 16:36:43 Wednesday
文章检索 我的文章 写文章
Java排序算法:冒泡、插入、快速
2023-06-15 17:36:49 深夜i     11     0

作为一个Java开发者,排序算法是必须要掌握的基本算法之一。在生产环境中,我经常需要对大批量数据进行排序,以提高系统的性能和效率。

以下是三种Java中常用的排序算法,它们分别是:

1. 冒泡排序

冒泡排序是一种简单的排序算法,它的基本思想是通过一遍又一遍比较相邻元素的大小,将较小的元素逐渐移动到数组的左侧。代码示例如下:

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

2. 插入排序

插入排序的基本思想是将待排序的数插入到已经排好序的有序数列中。代码示例如下:

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

3. 快速排序

快速排序是一种高效的排序算法,它的基本思想是通过一趟排序将需要排序的数据分割成两个部分,其中一部分的所有数据都比另外一部分小,然后再按照此方法分别对两部分数据进行快速排序,以达到整个数据变成有序序列的目的。代码示例如下:

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

通过掌握以上三种常用的排序算法,我能够更好地解决实际工作中遇到的排序问题,提高系统的性能和效率。

  
  

评论区