题目

从标准输入读入 n 个整数,使用冒泡排序算法(Bubble Sort)将其按升序排列后输出。

输入格式:第一行输入元素个数 n;第二行输入 n 个整数,以空格分隔。

输出格式:在一行中输出升序排列后的数组,元素以空格分隔,末尾换行。

数据范围与约定:1 ≤ n ≤ 1000。

思路与算法

1. 冒泡排序原理
外层循环控制轮数,内层两两比较相邻元素 a[j] > a[j+1],逆序则通过元组解包交换 a[j], a[j+1] = a[j+1], a[j]。

2. 沉底过程
每轮将未排序部分的最大值像气泡一样“浮”或“沉”到末尾。

完整程序

n = int(input())

# 打印空心正方形
for i in range(n):
    if i == 0 or i == n - 1:
        # 首行和末行全为星号
        print("*" * n)
    else:
        # 中间行首尾为星号,中间为空格
        print("*" + " " * (n - 2) + "*")

运行示例

输入:

4
4 1 3 2

输出:

1 2 3 4

其它写法

下面每种写法都是完整程序,输入输出格式与正文一致,便于对照。

sorted 排序

标准库排序;正文冒泡便于理解 O(n²) 过程。

程序:

#!/usr/bin/python3
# coding=utf-8

n = int(input())
a = list(map(int, input().split()))
print(" ".join(map(str, sorted(a))))

输入:

4
4 1 3 2

输出:

1 2 3 4