1237 - 冒泡排序(优化版)

通过次数

306

提交次数

882

时间限制 : 1 秒
内存限制 : 128 MB

它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

现要求给定n(n<=10)个整数m(0<=m<=2^31-1),将n个数进行冒泡从大到小排序,并优化排序过程,需输出每一步排序数字。)

输入

第1行1个正整数n,表示数的个数,n≤10;

第2行n个整数(之间用一个空格隔开),这些数在0~2^31-1之间。

输出

输出每一次排序结果。

样例

输入

5
23 22 1 67 3

输出

23 22 67 3 1
23 67 22 3 1
67 23 22 3 1

输入

10
9 84 63 9 18 79 92 61 30 2010

输出

84 63 9 18 79 92 61 30 2010 9
84 63 18 79 92 61 30 2010 9 9
84 63 79 92 61 30 2010 18 9 9
84 79 92 63 61 2010 30 18 9 9
84 92 79 63 2010 61 30 18 9 9
92 84 79 2010 63 61 30 18 9 9
92 84 2010 79 63 61 30 18 9 9
92 2010 84 79 63 61 30 18 9 9
2010 92 84 79 63 61 30 18 9 9

提示

注意:如果冒泡排序后已经是从大到小的顺序则无需再进行排序。