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