cpp-interview/Algorithm/BubbleSort_orderly.h

18 lines
423 B
C
Raw Normal View History

2018-02-11 00:20:34 +08:00
// 冒泡排序(改进版)
2018-02-09 21:47:58 +08:00
void BubbleSort_orderly(vector<int>& v) {
if (v.size() <= 0)
return;
2018-02-09 21:47:58 +08:00
int temp;
bool orderly = false;
for (int i = 0; i < v.size() - 1 && !orderly; ++i) {
orderly = true;
for (int j = 0; j < v.size() - 1 - i; ++j) {
2018-02-11 00:20:34 +08:00
if (v[j] > v[j + 1]) { // 从小到大
orderly = false; // 发生交换则仍非有序
2018-02-09 21:47:58 +08:00
temp = v[j];
v[j] = v[j + 1];
v[j + 1] = temp;
}
}
}
}