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

输入格式

第一行一个数nn
接下来每行一个数aia_i

输出格式

一个数,表示交换次数

输入输出样例

  • 输入#1

    5
    4 2 4 5 1

    输出#1

    5

说明/提示

对于所有测试点,
1<=n<=2×1051 <= n <= 2×10^5
0<=ai<=1090 <= a_i <= 10^9
特别地,对于测试点1-8:

测试点 特性
#1 升序升序
#2 严格递减严格递减
#3 升序,但首尾互换升序,但首尾互换
#4 归并差一步(左右半边均为升序)归并差一步(左右半边均为升序)
#5 全为1145141919810全为114514或1919810
#6 降序,但有相同元素降序,但有相同元素
#7 均为2的整数次幂1均为2的整数次幂-1
#8 前一半升序后一半降序(八字模型?)前一半升序后一半降序(八字模型?)
首页