NSGA 2 使用了随机快速排序算法。
C. A. R. Hoare在1962年为了改进冒泡排序算法提出快速排序(Quicksort)算法。其基本思想是递归、分治。其时间复杂度为Ο(n log n),最差时间复杂度为Ο(n^2)。
算法的基本流程为:首先根据队列中元素的大小分割为两组,其中一组的所有元素都比另一组中的元素小;然后再分别对这两组数据重复执行分割操作。
快速排序伪代码如下:
QUICKSORT(A,left,right)
if left >= right return;
choose one element as Pivot
遍历队列中所有元素,将小于Pivot放到第一组,将不小于Pivot的元素放到第二组。
分别对这两组应用QUICKSORT排序。
网上有很多关于快速排序算法的分析资料。这里仅以一个小例子演示一下分组操作。
现有一组随机数据如下所示:
20 2 39 21 71 2 77 44 39 33
对这组数据队列执行分割操作,首先设定

本文介绍了NSGA 2优化算法中采用的随机快速排序方法,详细阐述了快速排序的基本思想、时间复杂度,并给出了算法的伪代码。通过一个实例展示了排序过程,同时讨论了基准选择对快速排序效率的影响以及随机选取基准的改进策略。
最低0.47元/天 解锁文章
5856

被折叠的 条评论
为什么被折叠?



