Sortare de forfecare

De la Wikipedia, enciclopedia liberă.
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;
	}
   }
  }
 }
}