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

โปรแกรม C ++ สำหรับ Gnome Sort?


การเรียงลำดับของ 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";
   }
}