首页 > 试题广场 >

快速排序

[编程题]快速排序
  • 热度指数:528 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
快速排序
快速排序又是一种分而治之思想在排序算法上的典型应用。
算法步骤
1、从数列中挑出一个元素,称为 “基准”(pivot)。
2、重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。
3、递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。
4、递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。虽然一直递归下去,但是这个算法总会退出,因为在每次的迭代(iteration)中,它至少会把一个元素摆到它最后的位置去。


输入描述:
20,413,3,53,90,324


输出描述:
[3, 20, 53, 90, 324, 413]
示例1

输入

20,413,3,53,90,324

输出

[3, 20, 53, 90, 324, 413]

备注:
特别提醒:注意输入输出,严格按照示例。