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

โปรแกรม C/C++ สำหรับการเรียงลำดับเลขคี่ (Brick Sort)?


ที่นี่เราจะมาดูกันว่าการเรียงอิฐเป็นอย่างไร การเรียงลำดับอิฐเป็นการดัดแปลงหนึ่งของการเรียงลำดับฟอง อัลกอริทึมนี้แบ่งออกเป็นสองส่วน ส่วนเหล่านี้เป็นส่วนคี่และส่วนคู่ ในส่วนคี่ เราจะใช้การเรียงลำดับฟองกับรายการที่จัดทำดัชนีคี่ และในส่วนคู่ เราจะใช้การเรียงลำดับฟองกับองค์ประกอบที่จัดทำดัชนีแบบคู่ ให้เราดูอัลกอริทึมเพื่อให้ได้แนวคิด

อัลกอริทึม

brickSort(arr, n)

begin
   flag := false
   while the flag is not true, do
      flag := true
      for i := 1 to n-2, increase i by 2, do
         if arr[i] > arr[i+1], then
            exchange arr[i] and arr[i+1]
            flag := false
         end if
      done
      for i := 0 to n-2, increase i by 2, do
         if arr[i] > arr[i+1], then
            exchange arr[i] and arr[i+1]
            flag := false
         end if
      done
   done
end

ตัวอย่าง

#include<iostream>
using namespace std;
void brickSort(int arr[], int n){
   bool flag = false;
   while(!flag){
      flag = true;
      for(int i = 1; i<n-1; i= i+2){
         if(arr[i] > arr[i+1]){
            swap(arr[i], arr[i+1]);
            flag = false;
         }
      }
      for(int i = 0; i<n-1; i= i+2){
         if(arr[i] > arr[i+1]){
            swap(arr[i], arr[i+1]);
            flag = false;
         }
      }
   }
}
main() {
   int data[] = {54, 74, 98, 154, 98, 32, 20, 13, 35, 40};
   int n = sizeof(data)/sizeof(data[0]);
   cout << "Sorted Sequence ";
   brickSort(data, n);
   for(int i = 0; i <n;i++){
      cout << data[i] << " ";
   }
}

ผลลัพธ์

Sorted Sequence 13 20 32 35 40 54 74 98 98 154