myarray = empty
n = 10000
range = 1000
loop 1 to n {
x = random number between 1 and range
if x not in myarray {
add x to myarray
sort myarray
do something
}
}
我认为插入排序,但那需要元素转移。快速排序在已排序的列表上会很糟糕。我现在能想到的最好的是Min Heap。有一些鲜为人知的排序算法更适合这种情况吗?它在C++的STL中吗?这种情况下最好的排序算法是什么?
大多数快速排序实现在已排序的列表上很快。 std :: sort是为大致均匀分布的数据而设计的,就是你如何拥有它。 –
为什么你甚至在这里排序?这种情况不需要重复分类。你要添加元素,如果它不存在,只需在该循环之后对其进行排序。 – King
@King我的错误,我将添加一个做某事的行,所以我需要在每次迭代后对其进行排序。 – user1161604