Programa C/C++ para clasificación par-impar/clasificación de bloques

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);
}
Producción:

-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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *