打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Java常见排序算法——快速排序

  概念:

  通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分小,则可分别对这两部分记录继续进行排序,直到整个序列有序。

  原理:

  在数据集之中,选择一个元素作为”基准”(pivot)。

  所有小于”基准”的元素,都移到”基准”的左边;所有大于”基准”的元素,都移到”基准”的右边。这个操作称为分区 (partition) 操作,分区操作结束后,基准元素所处的位置就是最终排序后它的位置。

  对”基准”左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。

  图解:

  例如我们有个一个数组[29 4 10 11 7]

  1.首先我们先选定一个基准元素,这里我们选择10作为基准元素,然后把基准元素放在最后一个,如果选择最后一个元素作为基准元素,那么可以省略

  快速排序

  29 4 11 7 10

  2.从左到右(除了最后的元素),循环移动小于基准元素到数据开头,留下大于等于基准元素的接在后面。

  循环i = 1的时候,找到一个小于基准元素的元素4

  这个时候storeIndex = 1

  快速排序

  4 29 11 7 10

  之后循环到i=3时7小于10和storeIndex = 1换位置

  4 7 11 29 10

  这个时候storeIndex = 2

  3.再然后,我们把基准元素放到storeIndex的位置,其他元素位置依次+1得到了我们想要的数组

  4 7 10 11 29

  代码:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
js实现快速排序(in
三分钟!Go读懂经典算法(快速排序)
睁大眼睛看排序:直观展现常用排序算法!
算法系列: 10大常见排序算法: 快速排序法
order — 改变元素的位置排序
数据结构系列8
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服