📜  用于Gnome排序的C ++程序(1)

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

用于Gnome排序的C++程序介绍

以下是一段用于实现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排序的结果。

希望这个介绍对你有所帮助!