21xrx.com
2025-03-19 00:50:42 Wednesday
文章检索 我的文章 写文章
Java实现快速排序算法代码示例
2023-07-30 16:06:43 深夜i     --     --
Java 快速排序算法 代码示例

快速排序算法是一种常用且高效的排序算法,其在实际应用中得到广泛使用。本文将介绍Java语言如何实现快速排序算法,并给出代码示例。

快速排序算法的基本思想是通过分治的方式将一个待排序的序列划分为左右两个子序列,之后对子序列进行递归调用,最终实现排序。具体步骤如下:

1. 选择一个基准元素(一般选择序列的第一个元素),将序列划分为左右两个子序列。

2. 将比基准元素小的元素放在左侧,比基准元素大的元素放在右侧。

3. 分别对左右两个子序列递归调用快速排序算法。

4. 合并左右两个子序列,得到最终的排序结果。

下面是Java实现快速排序算法的代码示例:

public class QuickSort {
  public static void main(String[] args) {
    int[] array = 8;
    quickSort(array, 0, array.length - 1);
    for (int num : array) {
      System.out.print(num + " ");
    }
  }
  public static void quickSort(int[] array, int left, int right) {
    if (left >= right) return;
    int pivot = partition(array, left, right);
    quickSort(array, left, pivot - 1);
    quickSort(array, pivot + 1, right);
  }
  public static int partition(int[] array, int left, int right) {
    int pivot = array[left];
    int i = left + 1;
    int j = right;
    while (true) {
      while (i <= j && array[i] < pivot) i++;
      while (j >= i && array[j] > pivot) j--;
      if (i >= j) break;
      swap(array, i, j);
    }
    swap(array, left, j);
    return j;
  }
  public static void swap(int[] array, int i, int j) {
    int temp = array[i];
    array[i] = array[j];
    array[j] = temp;
  }
}

上述代码中,`quickSort`方法用于递归调用快速排序算法。在每一次递归调用中,根据基准元素的值,将待排序序列划分为左右两个子序列,并分别对子序列递归调用`quickSort`方法。`partition`方法用于实现划分操作,通过设置两个指针`i`和`j`,从左右两侧扫描序列,将比基准元素大或小的元素交换位置。最后,使用`swap`方法交换基准元素与`j`指针指向的元素,完成一次划分操作。

运行上述代码,输出结果为:1 2 3 4 5 6 7 8 9,即为对数组进行快速排序的结果。

总结来说,快速排序算法是一种高效的排序算法,适用于大多数实际应用场景。通过Java语言的实现,我们可以很方便地应用快速排序算法进行数据排序。

  
  

评论区