美文网首页
排序算法1——快排

排序算法1——快排

作者: CokeCode | 来源:发表于2021-08-09 20:21 被阅读0次
public class Solution {

  public void qSort(int[] nums) {
    if (nums == null || nums.length <= 1) {
      return;
    }
    qSort(nums, 0, nums.length - 1);
  }

  private void qSort(int[] a, int l, int r) {
    int pivot;
    if (l < r) {
      pivot = partition(a, l, r);
      qSort(a, l, pivot - 1);
      qSort(a, pivot + 1, r);
    }
  }

  private int partition(int[] a, int l, int r) {
    int pivot = a[l];
    while(l < r) {
      while (l < r && a[r] >= pivot) {
        --r;
      }
      if (l < r) {
        a[l++] = a[r];
      }
      while (l < r && a[l] <= pivot) {
        ++l;
      }
      if (l < r) {
        a[r--] = a[l];
      }
    }
    a[l] = pivot;
    return l;
  }

}

相关文章

  • 06-20:刷题综合三:快排

    快排: 1、快速排序 2、快速排序寻找第K个大 3、最小的K个数 1、手写快排算法 class Solution:...

  • 算法-排序算法总结

    排序类型总结 1 排序算法基础实现 2 排序算法应用 2.1 基础排序 2.2 计数排序应用 2.3 快排应用 2...

  • 排序算法1——快排

  • 常用排序算法

    常见排序算法 本文介绍6种常用排序算法,包括冒泡、选择、插入、快排、堆排、希尔排序。下面从排序算法的原理、解题步骤...

  • 2018-07-13

    快速排序算法 快排普通版本: 快排优化版本: 测试代码:

  • 基本排序算法

    冒泡算法 简单选择排序 堆排序 快排 归并排序

  • Objective-c各种排序算法

    Objective-C排序算法 快排 快速排序是面试中经常会被问的一个排序算法。一般要求手写。快排是对冒泡排序的一...

  • 排序

    八大排序算法 一、归并排序 递归及非递归的JAVA实现 二、快速排序 快排算法JAVA实现 三、堆排序 堆排序堆排...

  • 快速排序算法的PHP与JQuery简单实现

    快速排序(以下简称快排)算法的PHP与JQuery简单实现 1.简介: 1.快排的本质是冒泡排序(Bubble S...

  • 数组排序问题(二)

    目录 荷兰国旗问题 随机快排 堆排序 排序算法的稳定性及其汇总 工程中的综合排序算法 比较器的使用 桶排序、计数排...

网友评论

      本文标题:排序算法1——快排

      本文链接:https://www.haomeiwen.com/subject/nxhtbltx.html