diff --git a/260202/冒泡排序优化版.cpp b/260202/冒泡排序优化版.cpp new file mode 100644 index 0000000..e38ebc0 --- /dev/null +++ b/260202/冒泡排序优化版.cpp @@ -0,0 +1,35 @@ +#include +using namespace std; + +int main() { + int a[5] = {1, 2, 5, 4, 3}; // ٸ + int n = 5; + + for (int i = 0; i < n - 1; i++) { + // 1. ÿһֿʼǰ趨һ־λǡѾź򡱵 + bool swapped = false; + + for (int j = 0; j < n - 1 - i; j++) { + if (a[j] > a[j + 1]) { + // + int temp = a[j]; + a[j] = a[j + 1]; + a[j + 1] = temp; + + // 2. ֻҪн˵ûźãΪ true + swapped = true; + } + } + + // 3. ؼжϣһ꣬swapped false˵ûзκν + // ζʣµѾȫˣֱѭ + if (swapped == false) { + break; + } + } + + cout << "Ż: "; + for (int i = 0; i < n; i++) cout << a[i] << " "; + + return 0; +}