Sortare de forfecare
Salt la navigare Salt la căutare
Sortare de forfecare | |
---|---|
Clasă | Algoritm de sortare |
Structură de date | Matrice |
Cel mai rău caz din punct de vedere temporal | |
Sortarea prin forfecare este un algoritm de sortare foarte simplu pentru sortarea vectorilor bidimensionali; acest algoritm sortează rândurile și coloanele vectorului la rândul lor. Are o complexitate de timp de .
Implementări
C ++
void shear_sort (int v [] [], int n, int m) { bool exchange = true; while (schimb) { schimb = fals; 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]); schimb = adevărat; } } } altfel dacă (i% 2! = 0) { pentru (int j = m-1; j> 0; j -) { if (v [i] [j]> v [i] [j-1]) { swap (v [i] [j], v [i] [j-1]); schimb = adevărat; } } } } 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]); schimb = adevărat; } } } } }