Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
134849 YYYY 学生排队 C++ 解答错误 0 1000 MS 1024 KB 961 2024-03-03 09:42:05

Tests(0/10):


#include<iostream> using namespace std; int n,a[100001],ans[100004]; /* 优化冒泡排序,小-》大 优化点:如果数组已经有序,可无须判断,直接输出 */ void betterbubblesort() { bool flag = false; //数组初始化无序 for (int i = n; i >= 2; i--) { //从前往后冒泡,将最大值移到最后,无序才继续 flag = true; //做个标记,如果该标记被破坏则说明数组无序 for (int j = 1; j < i; j++) { if (a[j] > a[j + 1]) { swap(a[j],a[j+1]); ans[j]++; ans[j+1]++; flag = false; } } if(flag == true){ break; } } } int main(){ cin >> n; for(int i = 1;i <= n;i++){ cin >> a[i]; ans[i] = 1; } long long re = 0; betterbubblesort(); for(int i = 1;i <= n;i++){ re += ans[i]; } cout << re; return 0; }


测评信息: