竞赛
考级
#include <bits/stdc++.h> using namespace std; int main() { int n, m; cin >> n >> m; int a[n + 1] = {0}; for (int i = 1; i <= n; i++) cin >> a[i]; //冒泡算法======= for (int i = 1; i <= n; i++) { for (int j = 1; j <= n - i; j++) { if (a[j] > a[j + 1]) { swap(a[j], a[j + 1]); } } if (i == m) {//按照约定,到第m轮停止 break; } } //============================== for (int i = 1; i <= n; i++) cout << a[i] << " "; return 0; }
T4.冒泡排序 题目思路 本题考查冒泡排序的主要思想,冒泡排序的思想是重复地走访过要排序的数列,依次比较两个元素,如果它们的顺序错误就把它们交换过来。本题要利用 m控制冒泡排序的趟数。 参考代码
#include<bits/stdc++.h> using namespace std; int main(){ int n,m; cin>>n>>m; int a[10005]; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=m;i++){//轮数:进行比较m轮 int bs=0; for(int j=1;j<=n-i;j++){//比较次数 if(a[j]>a[j+1]){ swap(a[j],a[j+1]); bs=1; } } if(bs==0){ break; } } for(int i=1;i<=n;i++){ cout<<a[i]<<" "; } return 0; }
#include <bits/stdc++.h> using namespace std; int main() { int n, m; cin >> n >> m; int a[n + 1] = {0}; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= n; i++) { for (int j = 1; j <= n - i; j++) { if (a[j] > a[j + 1]) { swap(a[j], a[j + 1]); } } if (i == m) { break; } } for (int i = 1; i <= n; i++) cout << a[i] << " "; return 0; }
m,n = map(int,input().split()) b = list(map(int,input().split())) for i in range(n): for j in range(len(b)-i-1): if b[j] > b[j+1]: b[j],b[j+1] = b[j+1],b[j] for i in b: print(i,end=" ")
提交答案之后,这里将显示提交结果~