欢迎各界计算机爱好者加入,弘扬极客精神!

quick sorting 排序的逻辑

0 喜欢 0 不喜欢
它是如何实现排序的 ,请详细解释下。谢谢
最新提问 12月 5, 2016 分类:菜鸟问 | 用户: Zhangchi (2,280 分)  

2 个回答

1 喜欢 0 不喜欢
 
已采纳

快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists)。

步骤为:

  1. 从数列中挑出一个元素,称为"基准"(pivot),
  2. 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区结束之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。
  3. 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。

递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。虽然一直递归下去,但是这个算法总会结束,因为在每次的迭代(iteration)中,它至少会把一个元素摆到它最后的位置去。

最新回答 12月 6, 2016 用户: harryho97 (4,744 分)  
采纳于 12月 6, 2016 用户:Zhangchi
1 喜欢 0 不喜欢
最新回答 12月 5, 2016 用户: Cunese (6,866 分)  
...