📅  最后修改于: 2023-12-03 14:56:18.992000             🧑  作者: Mango
以下是一段用于实现Gnome排序算法的C++代码示例。Gnome排序是一种简单的排序算法,通过反复比较相邻元素并交换它们,将较大的元素移动到正确的位置,直到整个序列被完全排序。
#include <iostream>
using namespace std;
// Gnome排序函数
void gnomeSort(int arr[], int n) {
int pos = 0;
while (pos < n) {
if (pos == 0 || arr[pos] >= arr[pos - 1]) {
pos++;
}
else {
swap(arr[pos], arr[pos - 1]);
pos--;
}
}
}
int main() {
int arr[] = {8, 3, 1, 5, 2, 4};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "排序前的数组: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
gnomeSort(arr, n);
cout << "排序后的数组: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
以上代码实现了Gnome排序算法。在主函数中,我们定义了一个整数数组 arr
,用于存储待排序的数据。然后,通过调用 gnomeSort
函数对数组进行排序。排序前和排序后,我们分别输出了数组的内容。
这段程序使用了C++的标准库 iostream
来实现输入输出操作,以及 swap
函数来交换数组中的元素。
你可以将以上代码复制到一个C++源文件中,然后编译并运行它,就可以看到Gnome排序的结果。
希望这个介绍对你有所帮助!