Shear sort

Abbozzo
Questa voce sull'argomento programmazione è solo un abbozzo.
Contribuisci a migliorarla secondo le convenzioni di Wikipedia.
Shear sort
ClasseAlgoritmo di ordinamento
Struttura datiArray
Caso peggiore temporalmente Θ ( n log n ) {\displaystyle \Theta (n\log n)}
Manuale

Lo Shear sort è un algoritmo di ordinamento molto semplice per ordinare vettori a due dimensioni; questo algoritmo ordina a turno le righe e le colonne del vettore. Ha una complessità in tempo di Θ ( n log n ) {\displaystyle \Theta (n\log n)} .

Implementazioni

C++

void shear_sort(int v[][], int n, int m) {
    bool scambio = true;
    while (scambio) {
        scambio = false;
        for (int i = 0; i < n; i++) {
            if (i % 2 == 0) {
                for (int j = 0; j < m - 1; j++) {
                    if (v[i][j] > v[i][j + 1]) {
                        swap(v[i][j], v[i][j + 1]);
                        scambio = true;
                    }
                }
            } else if (i % 2 != 0) {
                for (int j = m - 1; j > 0; j--) {
                    if (v[i][j] > v[i][j - 1]) {
                        swap(v[i][j], v[i][j - 1]);
                        scambio = true;
                    }
                }
            }
        }
        for (int j = 0; j < m; j++) {
            for (int i = 0; i < n - 1; i++) {
                if (v[i][j] > v[i + 1][j]) {
                    swap(v[i][j], v[i + 1][j]);
                    scambio = true;
                }
            }
        }
    }
}
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica