21xrx.com
2024-11-03 21:56:41 Sunday
登录
文章检索 我的文章 写文章
Java实现快速排序算法代码实例
2023-06-15 16:21:40 深夜i     --     --
Java 快速排序 算法

文章

快速排序是一种高效的排序算法,它采用分治策略,将一个大问题转化为多个小问题,然后递归解决。这种算法的平均时间复杂度为O(nlogn),是目前最快的排序算法之一。在本文中,我们将介绍如何使用Java语言实现快速排序算法,并提供代码实例。

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


public static void quickSort(int[] arr, int left, int right) {

  if (left >= right)

    return;

  

  int pivot = arr[left];

  int i = left;

  int j = right;

  while (i < j) {

    while (i < j && arr[j] >= pivot)

      j--;

    

    arr[i] = arr[j];

    while (i < j && arr[i] <= pivot) {

      i++;

    }

    arr[j] = arr[i];

  }

  arr[i] = pivot;

  quickSort(arr, left, i - 1);

  quickSort(arr, i + 1, right);

}

快速排序算法的核心思想是将一个数组分成两个子数组,然后将左侧子数组中的所有元素都小于右侧子数组中的元素。递归执行该过程,直到整个数组有序。该方法的参数有三个:数组arr、左起始索引left和右结束索引right。

代码实现中,我们首先将arr[left]赋值给pivot,然后定义两个指针i和j分别指向数组的左右两端。然后,我们开始从右端j向左移动,找到第一个小于pivot的元素。然后,我们将该元素存入arr[i]中,并且将指针i向右移动。接着,我们从左端i向右移动,找到第一个大于pivot的元素。然后,我们将该元素存入arr[j]中,并且将指针j向左移动。我们重复该过程,直到i和j指针相遇。最后,我们将pivot存储在arr[i]中,这样,左侧子数组中的所有元素都小于pivot,右侧子数组中的所有元素都大于pivot。然后,我们将子数组分别递归调用quickSort方法,直到整个数组有序。

本文介绍了Java实现快速排序算法的方法和代码实例。通过代码实践,我们可以更好地理解快速排序算法的核心思想和实现过程。

  
  

评论区

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