Files
ClassFeedback/C++代码/CSP04/02-简单排序/冒泡排序.cpp

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)
// 稳定的排序算法