การเรียงลำดับของ Gnome เป็นอัลกอริธึมการจัดเรียงที่คล้ายกับการเรียงลำดับการแทรก ยกเว้นว่าการย้ายองค์ประกอบไปยังตำแหน่งที่เหมาะสมนั้นทำได้โดยชุดของการแลกเปลี่ยน เช่นเดียวกับการเรียงลำดับแบบฟอง
Input: 53421 Output: 12345
คำอธิบาย
การเรียงลำดับอัลกอริธึมที่ย้ายองค์ประกอบไปยังตำแหน่งที่เหมาะสมนั้นทำได้โดยชุดของการแลกเปลี่ยน เช่นเดียวกับการเรียงลำดับแบบฟอง มันเป็นเพียงการวนซ้ำ
ตัวอย่าง
#include <iostream> using namespace std; int main() { int temp; int arr[] = { 5, 3, 4, 2, 1 }; int n=5; int i; 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"; } }