Gnome Sort là thuật toán sắp xếp giống Insertion Sort, khác ở chỗ di chuyển phần tử đến vị trí đúng bằng chuỗi hoán đổi (swaps), như Bubble Sort.
Ví dụ
Input: 5 3 4 2 1 Output: 1 2 3 4 5
Giải thích
Thuật toán sắp xếp di chuyển phần tử đến vị trí đúng bằng chuỗi hoán đổi như Bubble Sort. Chỉ cần vòng lặp đơn giản.
Ví dụ mã C++
#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";
}