搜索
楼主: 啊哈磊
打印 上一主题 下一主题

【啊哈!算法】算法3:最常用的排序——快速排序

[复制链接]
楼主
发表于 2014-10-11 21:57:11 | 显示全部楼层
kuaile1210 发表于 2014-10-11 21:49
为什么 要从右开始呢?

因为在这个实现里面基准数的位置通过left进行确定,先动left会出错,例如
1 2 3 4 5

如果先动左边会把1 5交换位置
沙发
发表于 2014-10-12 00:39:42 | 显示全部楼层
kuaile1210 发表于 2014-10-12 00:33
很坚难啊!这样一来才知道了为什么必须是J先走
每个人的思维方式不一样,感觉作者超级聪明。这真的不是 ...

不不不这算法真的是3句话内能说清楚的……
板凳
发表于 2014-10-12 00:52:21 | 显示全部楼层
kuaile1210 发表于 2014-10-12 00:44
每个人的天份不一样啊!或许是我太笨了,哈哈。

1. 数组长度小于2时返回
2. 选一个轴点,把比轴点大的放在轴点右边,比轴点小的放在轴点左边
3. 对轴点左右的两个数组用同样的方法排序

作者这种讲法,其实是跳过了算法描述直接讲他的一种实现了

快排能有很多种实现,作者的写法只是其中一种
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表