49 lines
744 B
C++
49 lines
744 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;
|
|
}
|
|
|
|
int main(){
|
|
cin >> n;
|
|
|
|
for(int i = 1; i <= n; i++){
|
|
cin >> arr[i];
|
|
}
|
|
|
|
for(int i = 1; i <= n - 1; i++){ // 当前要交换的这个位置
|
|
int maxx = arr[i];
|
|
int idx = i;
|
|
for(int j = i + 1; j <= n; j++){ // j表示要和maxx进行比较的那个值的下标
|
|
// 打擂台
|
|
if(arr[j] > maxx){
|
|
maxx = arr[j];
|
|
idx = j;
|
|
}
|
|
}
|
|
|
|
swap(arr[i], arr[idx]);
|
|
cout << "第" << i << "趟:" ;
|
|
print();
|
|
}
|
|
|
|
print();
|
|
|
|
// 原数组 5 3 8 1 4
|
|
// 第一趟 8 3 5 1 4
|
|
// 第二趟 8 5 3 1 4
|
|
// 第三趟 8 5 4 1 3
|
|
// 第四趟 8 5 4 3 1
|
|
return 0;
|
|
}
|
|
|