Shear sort

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Shear sort
ClasseAlgoritmo di ordinamento
Struttura datiArray
Caso peggiore temporalmente

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 .

Implementazioni[modifica | modifica wikitesto]

C++[modifica | modifica wikitesto]

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