Problem2656--比较相邻数字

2656: 比较相邻数字

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 117  Solved: 68
[Status] [Submit] [Creator:]

Description

给你 n 个整数,从左往右排列成一排。

你需要从左往右依次比较每一对相邻的数字,如果这对相邻的数字中左边的那个数字大于右边的那个数字,则你需要交换它们的位置;否则,你不需要进行任何操作。

更具体一点地说:  

- 你需要先比较从左往右第 1 个数和第 2 数,如果第 1 个数大于第 2 个数,则交换它们的位置;
- 然后你需要比较从左往右第 2 个数和第 3 数,如果第 2 个数大于第 3 个数,则交换它们的位置;
- ……
- 最后你需要比较从左往右第 n-1 个数(倒数第 2 个数)和第 n 数(最后一个数),如果第 n-1 个数大于第 n 个数,则交换它们的位置。

举个例子,假设初始时有 6 个数从左到右依次为 [2, 1, 3, 6, 4, 5],则:  

- 先比较 2(第 1 个数)和 1(第 2 个数),因为 2 > 1,所以需要交换它们,交换后这 6 个数的排列变为 [1, 2, 3, 6, 4, 5];
- 再比较 2(第 2 个数)和 3(第 3 个数),因为 2 并不大于 3,所以不需要交换;
- 再比较 3(第 3 个数)和 6(第 4 个数),因为 3 并不大于 6,所以不需要交换;
- 再比较 6(第 4 个数)和 4(第 5 个数),因为 6 > 4,所以需要交换它们,交换后这 6 个数的排列变为 [1, 2, 3, 4, 6, 5];
- 最后比较 6(第 5 个数)和 5(第 6 个数),因为 6 > 5,所以需要交换它们,交换后这 6 个数的排列变为 [1, 2, 3, 4, 5, 6]。

你需要输出进行完 n-1 次比较操作后这 n 个数最终的排列。  

Input

第一行,一个整数 n(2 ≤ n ≤ 1000)。

第二行,n 个整数,两两之间以一个空格分隔。每个整数均为不超过 1000 的正整数。  

Output

输出共一行,包含 n 个整数,两两之间以一个空格分隔。表示最终 n 个数从左往右的排列。  

Sample Input Copy

6
170 145 150 155 180 165

Sample Output Copy

145 150 155 170 165 180

Source/Category