📌  相关文章
📜  C ++程序以波形形式对数组进行排序(1)

📅  最后修改于: 2023-12-03 14:39:39.302000             🧑  作者: Mango

C++程序以波形形式对数组进行排序

本文介绍使用C++语言实现对数组进行波形排序的算法。波形排序的原理是先对数组进行排序,随后将相邻的数字交换位置,形成波形的形状。例如,如果数组排序后是 1 2 3 4 5 6 7,那么波形排序后的数组就是 2 1 4 3 6 5 7。

程序实现

我们使用C++的STL的sort函数对数组进行排序,随后再进行波形排序。

#include<iostream>
#include<algorithm>

using namespace std;

void waveSort(int arr[], int n) {
    sort(arr, arr + n);
    for (int i = 0; i < n - 1; i += 2) {
        swap(arr[i], arr[i + 1]);
    }
}

int main() {
    int arr[] = { 3, 1, 4, 6, 5, 2 };
    int n = sizeof(arr) / sizeof(arr[0]);
    waveSort(arr, n);
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;
}

在主函数中,我们定义一个整型数组arr,并赋值为 { 3, 1, 4, 6, 5, 2 },随后计算数组的大小,调用waveSort函数对数组进行波形排序。最后输出排序后的结果。

程序运行结果

程序的运行结果为:

2 1 4 3 6 5

由此,波形排序已经成功实现。

总结

波形排序算法的核心是在排序后交换相邻的数字,从而形成波形的形状。我们通过C++语言实现了波形排序算法并在控制台中输出了运行结果。