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";
}
}