U23034.冒泡排序
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
很简单的问题,只需要求冒泡排序交换次数
我甚至精心给你准备了代码
#include <iostream>
#include <cstdio>
using namespace std;
int a[200005];
int ct;
int main(){
int n;
cin >> n;
for(int i = 1; i <= n; i++){
cin >> a[i];
}
for(int i = 1; i <= n; i++){
bool flag = 1;
for(int j = 1; j <= n - i; j++){
if(a[j] > a[j + 1]){
flag = 0;
swap(a[j], a[j + 1]);
ct++;
}
}
}cout << ct;
return 0;
}
复制上去就行了qwq
输入格式
第一行一个数n
接下来每行一个数ai
输出格式
一个数,表示交换次数
输入输出样例
输入#1
5 4 2 4 5 1
输出#1
5
说明/提示
对于所有测试点,
1<=n<=2×105
0<=ai<=109
特别地,对于测试点1-8:
测试点 | 特性 |
---|---|
#1 | 升序 |
#2 | 严格递减 |
#3 | 升序,但首尾互换 |
#4 | 归并差一步(左右半边均为升序) |
#5 | 全为114514或1919810 |
#6 | 降序,但有相同元素 |
#7 | 均为2的整数次幂−1 |
#8 | 前一半升序后一半降序(八字模型?) |