排序

冒泡排序

#include <iostream>
#include <iomanip>  // 用于控制输出格式
using namespace std;

void bubbleSort(int arr[], int n) {
    for (int i = 0; i < n - 1; i++) {
        bool swapped = false;
        for (int j = 0; j < n - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                swap(arr[j], arr[j + 1]);
                swapped = true;
            }
        }
        if (!swapped) break; // 如果没有交换,提前结束
    }
}

int main() {
    const int N = 10;
    int arr[N];
    
    // 输入10个整数
    for (int i = 0; i < N; i++) {
        cin >> arr[i];
    }
    
    // 冒泡排序
    bubbleSort(arr, N);
    
    // 输出结果,每个数占5列
    for (int i = 0; i < N; i++) {
        cout << setw(5) << arr[i];
    }
    
    return 0;
}

选择排序

#include <iostream>
using namespace std;

void selectionSort(int arr[], int n) {
    for (int i = 0; i < n - 1; i++) {
        int minIndex = i; // 假设当前未排序部分的第一个元素是最小的
        for (int j = i + 1; j < n; j++) {
            if (arr[j] < arr[minIndex]) {
                minIndex = j; // 更新最小元素的索引
            }
        }
        // 将最小元素交换到未排序部分的起始位置
        swap(arr[i], arr[minIndex]);
    }
}

int main() {
    const int N = 10;
    int a[N];

    // 输入10个整数
    for (int i = 0; i < N; i++) {
        cin >> a[i];
    }

    // 选择排序
    selectionSort(a, N);

    // 输出排序后的结果,每个数后跟一个空格
    for (int i = 0; i < N; i++) {
        cout << a[i];
        if (i < N - 1) cout << " "; // 最后一个数后不加空格
    }

    return 0;
}

0 条评论

目前还没有评论...