优化bubble_sort

This commit is contained in:
邹晓航
2015-02-07 00:42:49 +08:00
parent d56e93e219
commit 1fe60d64c1

View File

@@ -501,10 +501,15 @@ namespace TinySTL{
void bubble_sort(RandomIterator first, RandomIterator last, BinaryPredicate pred){
auto len = last - first;
for (auto i = len; i != 0; --i){
bool swaped = false;
for (auto p = first; p != (first + i - 1); ++p){
if (pred(*(p + 1), *p))
if (pred(*(p + 1), *p)){
swap(*(p + 1), *p);
swaped = true;
}
}
if (!swaped)
break;
}
}
}