如何随机化排序列表?

Fak*_*ken 6 c++ theory random

这对你们来说是一个奇怪的问题,

我有一个很好的排序列表,我希望随机化.我该怎么做呢?

在我的应用程序中,我有一个函数返回一个描述离散对象轮廓的点列表.由于问题解决的方式,该函数返回一个很好的有序列表.我有数学中描述的第二个边界,并想确定两个对象是否相互交叉.我简单地对点进行迭代,并确定是否有任何一点在数学边界内.

该方法运行良好但我想通过随机化点数据来提高速度.由于我的数学边界可能会被一系列彼此相邻的点重叠,我认为检查一个随机列表而不是迭代一个好的有序列表是有意义的(因为它只需要一个点击宣布一个十字路口).

那么,关于如何随机化有序列表的任何想法?

pmr*_*pmr 12

使用std::random_shuffle.如果你想自己实现这个方法,你应该看看Fisher-Yates shuffle.