题目
从标准输入读入 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