快速排序算法如何实现?
1. 你知道快速排序的排序算法?当准备睡觉时想起了今天。
2. 开始,快速排序使用“分而治之”的策略来打破,要从最小到最大。快速排序需将一个值列表分成小块以加快排序,这些子列表称为分区。要将列表划分为多个分区,必须使用这些值作为分裂点称为主点。有几种不同选择主元的方法,首先选择列表中的最后一项即 7。
3. 现在需要把所有小于它左边的主轴 7 的值通过交换较小的值和更大的值得到左边更小的值和更大的值右边的。首先从头开始浏览列表直到找到一个大于枢轴(7)的项。
4. 接下来将从末尾向后扫描列表直到找到一个比主元小的元素。添加第二个箭头表示位置,有一个 1 肯定小于 7。
5. 现在把找到的两个值交换一下,它们就会站在正确的一边。还有其他值,所以重复一下过程,从停下来的地方继续从左边找一个大于 7 的值,然后从右边找一个小于 7 的值。一旦找到这项目,交换!
6. 最终如果持续足够长的时间,扫描箭将会合。当这种情况发生时,列表就会被分割。通过交换主元和其他值项目在箭头相交的地方。
7. 主轴确定后,所有比它小的东西都神奇地出现在左边,比它大的在右边。这就是分划步骤,现在有两个分区,这些分区最酷的地方是从来没有将左边的任何项与再一次比较,轴心现在被锁定在了适当的位置。
8. 可以使用另一种算法对这些分区进行排序或者用另一轮快速排序,在左边分区上再次运行快速排序。3、1 和 2 放在 4 的前面。6 和 5 都放在 4 后面。在较小的分区上可以更有效地使用更简单的排序算法,比如冒泡排序。很快地做一下进行快速排序。就是这样!再来几个小的比较,一切都井然有序。
本文暂时没有评论,来添加一个吧(●'◡'●)