 GeeksforGeeks App
Open App Browser
Continue

# C/C++ Program for Odd-Even Sort / Brick Sort

This is basically a variation of bubble-sort. This algorithm is divided into two phases- Odd and Even Phase. The algorithm runs until the array elements are sorted and in each iteration two phases occurs- Odd and Even Phases. In the odd phase, we perform a bubble sort on odd indexed elements and in the even phase, we perform a bubble sort on even indexed elements.

## CPP

 `// A C++ Program to implement Odd-Even / Brick Sort``#include ``using` `namespace` `std;` `// A function to sort the algorithm using Odd Even sort``void` `oddEvenSort(``int` `arr[], ``int` `n)``{``    ``bool` `isSorted = ``false``; ``// Initially array is unsorted` `    ``while` `(!isSorted) {``        ``isSorted = ``true``;` `        ``// Perform Bubble sort on odd indexed element``        ``for` `(``int` `i = 1; i <= n - 2; i = i + 2) {``            ``if` `(arr[i] > arr[i + 1]) {``                ``swap(arr[i], arr[i + 1]);``                ``isSorted = ``false``;``            ``}``        ``}` `        ``// Perform Bubble sort on even indexed element``        ``for` `(``int` `i = 0; i <= n - 2; i = i + 2) {``            ``if` `(arr[i] > arr[i + 1]) {``                ``swap(arr[i], arr[i + 1]);``                ``isSorted = ``false``;``            ``}``        ``}``    ``}` `    ``return``;``}` `// A utility function to print an array of size n``void` `printArray(``int` `arr[], ``int` `n)``{``    ``for` `(``int` `i = 0; i < n; i++)``        ``cout << arr[i] << " ";``    ``cout << "\n";``}` `// Driver program to test above functions.``int` `main()``{``    ``int` `arr[] = { 34, 2, 10, -9 };``    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr);` `    ``oddEvenSort(arr, n);``    ``printArray(arr, n);` `    ``return` `(0);``}`

Output:

`-9 2 10 34`

Time Complexity : O(N2) where, N represents the number of elements in the given array.
Auxiliary Space : O(1), this is an in-place algorithm, so no extra space is required.

Please refer complete article on Odd-Even Sort / Brick Sort for more details!

My Personal Notes arrow_drop_up