美文网首页
【排序】快排-1

【排序】快排-1

作者: 菜鸟learn编程 | 来源:发表于2018-09-12 20:47 被阅读0次
// 参考《算法导论》上的伪代码
public void quickSort(int[] num, int begin, int end) {
  if(begin<end){
    int center = partition(num, begin, end);
    quickSort(num, begin, center-1);
    quickSort(num, center+1, end);  
  }
}

pubic int partition(int[] num, int begin, int end) {
  int index = num[end];
  int i = begin - 1;
  for(int j=begin; j<end; j++) {
    if(num[j]<=index) {
      i++;
      exchange(num, i, j);
    }
  }
  exchange(num, i+1, end);
  return i+1;
}
  • 最坏情况:O(n^2),当两个子集出现了包含n-10个元素的划分
  • 最好情况:O(nlgn),可能的最平衡划分中两个子问题的规模都不大于n/2
  • 如何改进?关键在于选取哪个元素作为枢纽(pivot)

相关文章

  • 【排序】快排-1

    最坏情况:,当两个子集出现了包含和个元素的划分 最好情况:,可能的最平衡划分中两个子问题的规模都不大于 如何改进?...

  • 05-30:排序专题

    1、快排 2、选择排序

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

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

  • 几种排序算法

    1、直接插入排序 2、冒泡排序 3、选择排序 4、快排

  • 排序算法1——快排

  • 2019-10-13 快速排序和堆排序

    1.快速排序双边循环发和单边循环法 2.堆排序 3.快排和堆排序的对比(1)快排的堆排序的时间复杂度都是(nlog...

  • swift排序

    1、冒泡排序 2、选择排序 3、插入排序 4、希尔排序 5、快排 6、归并排序

  • 排序-快排

    快排 快排-单向|双向查找

  • 算法-排序算法总结

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

  • leetcode笔记

    75思路1:记数排序思路2:三路快排思路3:四路快排?类似题目88 215

网友评论

      本文标题:【排序】快排-1

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