📅  最后修改于: 2023-12-03 14:39:39.302000             🧑  作者: Mango
本文介绍使用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++语言实现了波形排序算法并在控制台中输出了运行结果。