Ở đâ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