谁能帮我讲解一下 作业排序的一个更快算法的思想~

如题所述

快速排序是一种分割处理式的排序算法,它将一个复杂的排序问题分解为若干较容易处理的排序问题,然后逐一解决。在快速排序算法中,首先要从数据集的数据中选择一个数据作为分割值,然后将数据分成以下3个子集:
(1) 将大于分割值的数据移到分割值前面,组成子集1;
(2) 分割值本身为子集2;
(3) 将小于分割值的数据移到分割值后面,组成子集3。
等于分割值的数据可以放在任意一个子集中,这对快速排序算法没有任何影响。由于子集2已经是有序的,所以此后只需对子集1和子集3进行快速排序。

需要注意的是,当数据集很小时,无法进行快速排序,而要使用其它排序算法。显然,当数据集中的数据只有两个或更少时,就不可能将数据集再分割成三个子集。实际上,当数据集比较小时,程序员就应该考虑是否仍然采用快速排序算法,因为在这种情况下另外一些排序算法往往更快。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-13
爱决不放手就
相似回答