还记得冒泡排序吗?每次比较相邻的两个值,如果前一个数比后一个数大,则交换他们的位置(注:如果两个数相等,则不交换)。
给你一个初始序列和整数k,你要用冒泡排序把序列从小到大排好,现在问你的是在冒泡排序过程中做完交换k次之后,得到的序列是什么?
(若再k次内便已经将序列排好序,则直接输出排好序的结果)
#includeusing namespace std; int main() { int arr[10000]; int n, k,sum=0;//n表示数组长度,k表示交换次数,sum记录交换次数 cin >> n >> k; for (int i = 0; i < n;i++) { cin >> arr[i]; } //冒泡排序,如果数组前面的数大于后面的数,交换位置,等于就不交换 for (int i = 0; i < n-1;i++) { for (int j = 0; j < n-1-i;j++) { if (arr[j]>arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; sum++; } if (k==sum) { for (int i = 0; i < n; i++) { cout << arr[i] << " "; } return 0; } } } return 0; }



