#include #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; }