Merge sort: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 295:
 
<source lang="java">
import java.util.*;
public class Sort {
private static void mergeSort(int [] a, int [] vectorTemp, int left, int right ) {
if (left < right) {
int center = (left + right) /2;
mergeSort (a, vectorTemp, left, center);
mergeSort (a, vectorTemp, center+1, right);
merge (a, vectorTemp, left, center+1, right);
}
}
}
}
public static void mergeSort(int[] a) ){
int vectorTemp [];
vectorTemp = new int [a.length];
mergeSort (a, vectorTemp, 0, a.length-1);
}
}
 
private static void merge (int[] a, int[] vectorAux, int posLeft, int posRight, int posEnd ) {
int endLeft = posRight -1;
int posAux = posLeft;
int numElemen = posEnd - posLeft +1;
 
while (posLeft <= endLeft && posRight <=posEnd) {
if ((a[ posLeft ])< (a[posRight]))
vectorAux [posAux++]=a[posLeft++];
else
vectorAux [posAux++] = a[posRight++];
}
 
while (posLeft <= endLeft)
vectorAuxwhile [posAux++]=a[(posLeft++]; <= endLeft)
vectorAux [posAux++]=a[posLeft++];
 
while (posRight <= posEnd)
vectorAuxwhile [posAux++]=a[(posRight++]; <= posEnd)
vectorAux [posAux++]=a[posRight++];
 
for (int i=0;i<numElemen;i++,posEnd--)
a[posEnd]=vectorAux[posEnd];
}
}
 
public static void print(int[] vector) {
System.out.print("{");
for(int i=0;i<vector.length;i++) {
System.out.print(" "+vector[i]);
if(i==vector.length-1) System.out.printlnprint(" }"+vector[i]);
if(i==vector.length-1)
else System.out.print(",");
System.out.println("Array Non Ordinato:}");
}
else System.out.print(",");
}
}
}
public static void main(String[] args) {
int vector[]= { 10, 3, 15, 2, 1, 4, 9, 0};
public static void main(String[] args) {
System.out.println("Array Non Ordinato:");
int vector[]= { 10, 3, 15, 2, 1, 4, 9, 0};
print(vector);
System.out.println("Array Non Ordinato:");
mergeSort print(vector);
System.out.println("Array Ordinato Con MergeSort:");
print mergeSort(vector);
System.out.println("Array Ordinato Con MergeSort:");
}
print(vector);
}
}
}
</source>