大数据量的冒泡排序 (计次数)

Posted Yezi Pro

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据量的冒泡排序 (计次数)相关的知识,希望对你有一定的参考价值。

题目描述

给定一个包含从0到n-1各一次的数组,若使用冒泡排序将其排为升序,问其中需要进行多少次交换

输入

测试数据有多组,

每组由两行组成:第一行包含正整数n(n <= 5000); 下一行包含从0到n-1的n个整数的序列。

输出

对于每组测试数据,输出一行,输出交换总次数

输入样例1 

10
1 3 6 9 0 8 5 7 4 2

输出样例1

22

思路分析

不过就是多组数据,要一直输入一直输出。

AC代码

#include<iostream>
using namespace std;
int main() 
    int n;
    while (cin >> n) 
        int a[n],count=0;
        for (int i = 0; i < n; i++)
            cin >> a[i];
        for(int i=n-1;i>=0;i--)
            for(int j=0;j<i;j++)
                if(a[j]>a[j+1])
                    count++;
                    swap(a[j],a[j+1]);
                
        cout<<count<<endl;
    

以上是关于大数据量的冒泡排序 (计次数)的主要内容,如果未能解决你的问题,请参考以下文章

Python算法冒泡排序

排序算法一(冒泡排序选择排序插入排序)

8大排序算法图文讲解

数据结构与算法这或许是东半球分析十大排序算法最好的一篇文章

冒泡排序之算法

冒泡选择插入排序算法——基础排序算法详解。