美文网首页
排序算法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;
      }
    
    }
    
    

    相关文章

      网友评论

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

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