ESTRUCTURA DE DATOS
Cdigo Quicksort
import java.util.Scanner;
public class Ordenacion_quicksort {
private int matrix[];
private int largom;
public void sort(int[] inmatrix) {
if (inmatrix == null || inmatrix.length == 0) {
return;
}
this.matrix = inmatrix;
largom = inmatrix.length;
quickSort(0, largom - 1);
}
private void quickSort(int indiceL, int indiceH) {
int i = indiceL;
int j = indiceH;
int pivot = matrix[indiceL+(indiceH-indiceL)/2];
while (i <= j) {
while (matrix[i] < pivot) {
i++;
}
while (matrix[j] > pivot) {
j--;
}
if (i <= j) {
cambio(i, j);
i++;
j--;
for (int k = 0; k < matrix.length; k++) {
System.out.print(matrix[k]+" ,");
}
System.out.println("");
}
}
if (indiceL < j)
quickSort(indiceL, j);
if (i < indiceH)
quickSort(i, indiceH);
}
private void cambio(int i, int j) {
int temp = matrix[i];
matrix[i] = matrix[j];
matrix[j] = temp;
}
public static void main(String a[]){
Ordenacion_quicksort sorter = new Ordenacion_quicksort();
int lim;
int [] vector;
Scanner teclado = new Scanner (System.in);
System.out.println("Ordenamiento QuickSort");
System.out.println("Ingrese el limite");
lim=teclado.nextInt();
vector=new int [lim];
for (int i = 0; i < lim ; i++) {
System.out.print("x["+i+"]=");
vector[i]= teclado.nextInt();
}
System.out.println("\n\nEl vector original es: ");
for (int i = 0; i < lim; i++) {
System.out.print(vector[i]+ ", ");
}
System.out.println("\n\nORDENACION CON PASADAS");
sorter.sort(vector);
System.out.println("\nEl vector ordenado es: ");
for(int i:vector){
System.out.print(i);
System.out.print(" ");
}
}
}