#12298. 冒泡排序

冒泡排序

冒泡排序

编写一个冒泡排序算法程序,该程序按升序对序列 A 进行排序。该算法应基于以下伪代码:

BubbleSort(A)
1 for i = 0 to A.length-1
2     for j = A.length-1 downto i+1
3         if A[j] < A[j-1]
4             swap A[j] and A[j-1]

请注意,数组元素的索引基于 0-origin。

程序还应打印伪代码第 4 行中定义的交换作数。

输入

输入的第一行包括一个整数 ​N​,即序列中的元素数。

在第二行中,序列的 N 个元素由空格字符分隔。

输出

输出由 2 行组成。

在第一行中,请打印排序后的序列。序列的两个连续元素应用空格字符分隔。

在第二行中,请打印交换作的次数。

约束

1 ≤ N ≤ 100

样本输入 1

5
5 3 2 4 1

示例输出 1

1 2 3 4 5
8

样本输入 2

6
5 2 4 6 1 3

示例输出 2

1 2 3 4 5 6
9

注意 解释

例如样例2的输出

1 2 3 4 5 6(6的后面没有空格)所以你需要思考
如果在中间保留空格,
同时在最后输出的时候不存在空格,
1空格2空格3空格4空格5空格6注意后面没有空格!