Esta es básicamente una variación de bubble-sort . Este algoritmo se divide en dos fases: fase impar y par. El algoritmo se ejecuta hasta que se ordenan los elementos de la array y en cada iteración ocurren dos fases: Fases pares e impares. En la fase impar, realizamos una ordenación de burbuja en elementos indexados impares y en la fase par, realizamos una ordenación de burbuja en elementos indexados pares.
CPP
// A C++ Program to implement Odd-Even / Brick Sort #include <bits/stdc++.h> 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[0]); oddEvenSort(arr, n); printArray(arr, n); return (0); }
-9 2 10 34
Complejidad de tiempo: O(N 2 ) donde, N representa el número de elementos en la array dada.
Espacio auxiliar: O (1), este es un algoritmo en el lugar, por lo que no se requiere espacio adicional.
¡ Consulte el artículo completo sobre Clasificación par-impar / Clasificación de bloques para obtener más detalles!
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA