【发布时间】:2015-03-11 11:04:24
【问题描述】:
我需要对一个 stl::vector 进行排序,我知道它很有可能已经排序。
我想知道我是否应该这样做:
void my_sort(vector& v){
if( is_not_sorted(v) ) std::sort(v.begin(),v.end());
}
或者如果这已经在 std::sort 中为我完成(这意味着在不太可能已经排序的向量上性能更差)。
感谢您的回答。
【问题讨论】:
-
测试一个数组是否排序和实际排序是一回事,我会想到的?
-
@JonathanPotter 嗯,你可以测试一个数组是否在 O(n) 中排序,但你只能在 O(n log n) 中排序(使用元素比较)。
-
@JonathanPotter:对于冒泡排序,是的! :-)