冒泡排序的三种版本
初始版本
void Sort::BubbleSort_1() {
reset();
for(int i = 0; i < sorted.size(); i++) {
for(int j = sorted.size()-1; j > i; j--) {
compareTimes++;
if(sorted[j]<sorted[j-1]) { swap(sorted[j-1], sorted[j]); moveTimes+=3; }
}
}
}
版本2
void Sort::BubbleSort_2() {
reset();
bool isSorted = true;
for(int i = 0; i < sorted.size(); i++) {
for(int j = sorted.size()-1; j > i; j--) {
compareTimes++;
if(sorted[j]<sorted[j-1]) { swap(sorted[j-1], sorted[j]); isSorted = false; moveTimes+=3; }
}
if(isSorted) break;
else isSorted = true;
}
}
版本3