Implementazioni di algoritmi/Shaker sort: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Modifico Categoria:Algoritmi |
Nessun oggetto della modifica |
||
Riga 1:
{{Implementazioni di algoritmi}}
In [[w:informatica|informatica]] lo '''Shaker sort''', noto anche come '''Bubble Sort
Lo
Il nome
Tutte le ottimizzazioni e le varianti previste per il
== Implementazioni ==
Riga 58:
</source>
Implementazione, sempre in Java, di una variante ottimizzata dello Shaker sort basata sulle ottimizzazioni previste per il [[w:Bubble sort|Bubble sort]]:
<source lang="java">
void shakerSort(int[] a){
boolean swapped=true;
int n=a.length-1;
int infLimit=0;
int supLimit=0;
int temp=0;
int j=0;
while (j<n && swapped){
swapped=false;
for (int i=j;i<n;i++){
if (a[i]>a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
swapped=true;
supLimit=i;
}
}
if (swapped){
swapped=false;
n=supLimit;
for (int i=n;i>j;i--){
if (a[i]<a[i-1]){
temp=a[i];
a[i]=a[i-1];
a[i-1]=temp;
swapped=true;
infLimit=i;
}
}
j=infLimit;
}
}
}
</source>
===[[w:C++|C++]]===
<source lang="Cpp">
|