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

Chương trình C / C ++ cho Sắp xếp chẵn lẻ (Xếp gạch)?

Ở đây chúng ta sẽ xem cách phân loại gạch hoạt động. Sắp xếp gạch là một trong những sửa đổi của sắp xếp bong bóng. Thuật toán này được chia thành hai phần. Những phần này là phần lẻ và phần chẵn. Trong phần lẻ, chúng tôi sẽ sử dụng sắp xếp bong bóng trên các mục được lập chỉ mục lẻ và trong phần chẵn, chúng tôi sẽ sử dụng sắp xếp bong bóng trên các phần tử được lập chỉ mục chẵn. Hãy để chúng tôi xem thuật toán để có được ý tưởng.

Thuật toán

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

Ví dụ

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

Đầu ra

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