Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ สำหรับ Gnome Sort (โนมซอร์ท)

Gnome Sort เป็นอัลกอริทึมการเรียงที่คล้ายกับ Insertion Sort ยกเว้นว่าการย้ายองค์ประกอบไปตำแหน่งที่ถูกต้องทำได้โดยการสลับ (swaps) ซ้ำๆ คล้ายกับ Bubble Sort

Input: 5 3 4 2 1
Output: 1 2 3 4 5

คำอธิบาย

อัลกอริทึมการเรียงที่ย้ายองค์ประกอบไปตำแหน่งที่ถูกต้องโดยการสลับซ้ำๆ เหมือน Bubble Sort ต้องการแค่ลูปเดียว

ตัวอย่างโค้ด

#include <iostream>
using namespace std;

int main() {
    int temp;
    int arr[] = {5, 3, 4, 2, 1};
    int n = 5;
    int i = 0;
    while (i < n) {
        if (i == 0 || arr[i - 1] <= arr[i])
            i++;
        else {
            temp = arr[i - 1];
            arr[i - 1] = arr[i];
            arr[i] = temp;
            i = i - 1;
        }
    }
    for (i = 0; i < n; i++) {
        cout << arr[i] << "\t";
    }
}