53 lines
704 B
C++
53 lines
704 B
C++
#include <bits/stdc++.h>
|
|
#define endl '\n'
|
|
using namespace std;
|
|
|
|
int n;
|
|
int arr[100100];
|
|
|
|
void print(){
|
|
for(int i = 1; i <= n; i++){
|
|
cout << arr[i] << " ";
|
|
}
|
|
cout << endl;
|
|
}
|
|
|
|
void bubbleSort(){
|
|
for(int i = 1; i <= n - 1; i++){ // i表示趟数
|
|
bool ok = true; // 没有进行交换过
|
|
for(int j = 1; j <= n - i; j++){ // 要比较的这个数的下标
|
|
if(arr[j] > arr[j+1]){
|
|
swap(arr[j], arr[j+1]);
|
|
ok = false;
|
|
}
|
|
}
|
|
if(ok){
|
|
break;
|
|
}
|
|
cout << "第" << i << "趟:";
|
|
print();
|
|
}
|
|
}
|
|
|
|
int main(){
|
|
cin >> n;
|
|
for(int i = 1; i <= n; i++){
|
|
cin >> arr[i];
|
|
}
|
|
|
|
bubbleSort();
|
|
return 0;
|
|
}
|
|
|
|
// 时间复杂度
|
|
// O(n*n) 最好时间复杂度 O(n) 最差时间复杂度O(n*n)
|
|
// 稳定的排序算法
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|