30006 - 冒泡排序(优化版)

通过次数

21

提交次数

62

Time Limit : 1 秒
Memory Limit : 128 MB

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

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

Input

5

23 22 1 67 3

Output

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

Examples

Input

5
23 22 1 67 3

Output

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

Input

10
9 84 63 9 18 79 92 61 30 2010

Output

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

Hint

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