快速排序算法及分析

快速排序Quick Sort

  • 快速排序的思路是依据一个“中值”数据项来把数据表分为两半:小于中值的一半和大于中值的一半, 然后每部分分别进行快速排序( 递归)
    • 如果希望这两半拥有相等数量的数据项,则应该找到数据表的“中位数”但找中位数需要计算开销!要想没有开销,只能随意找一个数来充当“中值”比如,第1个数。

算法思路

快速排序的递归算法“递归三要素”如下

  • 基本结束条件:数据表仅有1个数据项,自然是排好序的
  • 缩小规模:根据“中值”, 将数据表分为两半, 最好情况是相等规模的两半
  • 调用自身:将两半分别调用自身进行排序( 排序基本操作在分裂过程中)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    zwb_jianshu阅读 1,252评论 0 0
  • 转载自CSDN规速 八大排序算法 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是...
    _小沫阅读 561评论 0 1
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    printf200阅读 788评论 0 0
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    闲云清烟阅读 772评论 0 6
  • 1)这本书为什么值得看: Python语言描述,如果学的Python用这本书学数据结构更合适 2016年出版,内容...
    孙怀阔阅读 12,648评论 0 15