Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ cho Gnome Sort?

Gnome sort là một thuật toán sắp xếp tương tự như Insertion sort, ngoại trừ việc di chuyển một phần tử đến vị trí thích hợp của nó được thực hiện bằng một loạt các hoán đổi, như trong sắp xếp bong bóng.

Input: 53421
Output: 12345

Giải thích

Thuật toán sắp xếp để di chuyển một phần tử đến vị trí thích hợp của nó được thực hiện bằng một loạt các hoán đổi, như trong sắp xếp bong bóng. Nó chỉ đơn giản là yêu cầu các vòng lặp.

Ví dụ

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