冒泡排序

Description

输入n个数组,将其从小到大排列。
输入格式:第一行一个整数n,表示数的个数,3<=n<=100,第二行有n个整数,中间用一个空格隔开。
输出格式:一行n个整数,每两个数之间用一空格隔开。

请使用冒泡排序算法完成本题

Sample Input

5

1 3 2 5 4

Sample Output

1 2 3 4 5

python解法

# 读取输入
n = int(input().strip())
nums = list(map(int, input().strip().split()))

# 检查输入是否符合要求
if not (3 <= n <= 100):
    print("输入的数的个数不符合要求!")
    exit()

# 冒泡排序算法逻辑
n = len(nums)
for i in range(n):
    for j in range(0, n - i - 1):
        if nums[j] > nums[j + 1]:
            nums[j], nums[j + 1] = nums[j + 1], nums[j]

# 输出排序后的数组
print(' '.join(map(str, nums)))

c++解法

#include<bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;
    if (n < 3 || n > 100) {
        cout << "输入的数字个数不在范围内!" << endl;
        return 1;
    }

    int arr[100]; // 定义一个足够大的数组来存储数字

    // 读入数字
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
    }

    // 冒泡排序
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                // 交换 arr[j] 和 arr[j+1]
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }

    // 输出排序后的数组
    for (int i = 0; i < n; i++) {
        cout << arr[i] << (i < n - 1 ? " " : "\n");
    }

    return 0;
}
如果您有更优的解法,欢迎在评论区一起交流噢~
阅读剩余
THE END