8 solutions
-
3
#include<bits/stdc++.h> using namespace std; int n; int a[105]; int main(){ cin>>n; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n;i++){ for(int j=0;j<n-i-1;j++){//减少循环次数 if(a[j]>a[j+1]){ swap(a[j],a[j+1]);//懒,直接函数 } } for(int i=0;i<n;i++) cout<<a[i]<<' '; cout<<endl; } return 0; }
-
1
#include<iostream> using namespace std; int main() { int n; cin>>n;//输入 int a[n]; for(int i=0;i<n;i++) { cin>>a[i];//输入 } for(int i=0;i<n;i++) { for(int j=0;j<n-i-1;j++)//最后的数据不用遍历,因为已经把最大的交换在最后了 { if(a[j]>a[j+1])//更大就交换 { swap(a[j],a[j+1]); } } for(int j=0;j<n;j++)//输出每一次排完的数组 { cout<<a[j]<<" "; } cout<<endl; } return 0;//完结散花! }
-
0
题解
思路:在一次循环后,可以确定最后面的那个数
只需要跑n次就可以把整个数组整理好了
去我主页看看#include<bits/stdc++.h> using namespace std; int n,arr[10001]; void put(){ for(int i=0;i<n;i++)cout<<arr[i]<<" "; cout<<endl; } int main(){ cin>>n; for(int i=0;i<n;i++)cin>>arr[i]; for(int i=1;i<n;i++){ for(int j=1;j<n-i+1;j++){ if(arr[j-1]>arr[j]){ swap(arr[j-1],arr[j]); } } put(); } put(); return 0; }
-
-1
#include<bits/stdc++.h> using namespace std; int n; int a[105]; int main() { cin>>n; for(int i = 0;i < n;i++) { cin >> a[i]; } for(int i = 0;i < n;i++) { for(int j = 0;j < n - i - 1;j++)//减少使用空间 { if(a[j] > a[j+1]) { swap(a[j],a[j+1]);//函数 //int t = a[j]; //a[j] = a[j+1]; //a[j+1] = t; } } for(int i = 0;i < n;i++) { cout << a[i] << " "; } cout << endl;//换行 } return 0;//无需多言 }
-
-1
#include <bits/stdc++.h> using namespace std; int a[105]; void swap(int& b,int& c){ int t; t = b; b = c; c = t; } void Print(int n){ for(int i = 1;i <= n;i++){ printf("%d ",a[i]); } printf("\n"); } int main(int argc, char **argv){ int n; cin >> n; 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]); } } Print(n); } return 0; }
- 1
Information
- ID
- 938
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 4
- Tags
- (None)
- # Submissions
- 140
- Accepted
- 64
- Uploaded By