21xrx.com
2024-05-09 12:21:12 Thursday
登录
文章检索 我的文章 写文章
快速排序算法的Java实现
2023-08-01 14:20:17 深夜i     --     --
快速排序 算法 Java实现

快速排序是一种常用的排序算法,它通过将数组分成较小和较大的两个子数组来递归地排序。它的实现基于一个基准元素,通过将比基准元素小的元素放在其前面,将比基准元素大的元素放在其后面,将数组划分为两个子数组。然后继续对子数组进行排序,直到整个数组有序为止。

在Java中,实现快速排序算法并不复杂。下面是一个使用递归方式实现快速排序的Java代码:


public class QuickSort {

  public static void main(String[] args) {

    int[] nums = 9;

    quickSort(nums, 0, nums.length - 1);

    for (int num : nums) {

      System.out.print(num + " ");

    }

  }

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

    if (low < high) {

      int pivotIndex = partition(nums, low, high);

      quickSort(nums, low, pivotIndex - 1);

      quickSort(nums, pivotIndex + 1, high);

    }

  }

  public static int partition(int[] nums, int low, int high) {

    int pivot = nums[low];

    while (low < high) {

      while (low < high && nums[high] >= pivot)

        high--;

      

      nums[low] = nums[high];

      while (low < high && nums[low] <= pivot) {

        low++;

      }

      nums[high] = nums[low];

    }

    nums[low] = pivot;

    return low;

  }

}

上述代码中,我们首先定义了一个名为`quickSort`的方法,它接受一个整型数组`nums`、一个整型变量`low`和一个整型变量`high`作为参数。该方法用于对`nums`数组的`low`到`high`范围内的元素进行快速排序。在方法内部,我们首先通过调用`partition`方法来获取基准元素的索引`pivotIndex`,然后分别对基准元素左边的子数组和右边的子数组进行递归调用,直到整个数组有序为止。

接下来,我们定义了一个名为`partition`的方法,它接受一个整型数组`nums`、一个整型变量`low`和一个整型变量`high`作为参数。该方法用于在子数组`nums[low]`到`nums[high]`范围内进行划分,并返回基准元素的索引。在方法内部,我们首先选择以`nums[low]`作为基准元素。接着,我们通过一个循环将比基准元素小的元素放在基准元素的左边,将比基准元素大的元素放在基准元素的右边,最后返回基准元素的索引。

最后,在`main`方法中,我们定义了一个整型数组`nums`并初始化一个无序数列。然后,我们调用`quickSort`方法对`nums`数组进行快速排序,并输出排序结果。

总之,以上代码展示了一种使用Java实现快速排序算法的方法。这种算法在时间复杂度上表现出色,因此在排序大规模的数据时十分常用。如果你对快速排序感兴趣,你可以尝试在自己的项目中应用它,并进一步理解和优化该算法。

  
  

评论区

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