Escolar Documentos
Profissional Documentos
Cultura Documentos
Es una version mejorada del metodo de insercion directa. Recibe este nombre en honor a su autor. Donald
L.Shell, quien lo propuso en 1959. Este metodo tambien se conoce como insercion con incrementos
decrecientes como elementos decrecientes. Shell propone que las comparaciones entre elementos se
efectuen con saltos de mayor tamaño, pero con incrementos decrecientes; asi los elementos quedaran
ordenados en el arreglo mas rapidamente.
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication7;
import javax.swing.JOptionPane;
/**
*
* @author CSFH
*/
public class JavaApplication7 {
/**
* @param args the command line arguments
*/
cambios=true;
}}}}
if(O==3)
{
for(salto=longitud/2; salto!=0; salto/=2){
cambios=true;
while(cambios){ // Mientras se intercambie algún elemento
cambios=false;
for(j=salto; j<longitud; j++) // se da una pasada
if(c2[j-salto]>c2[j]){ // y si están desordenados
aux=c1[j]; // se reordenan
c1[j]=c1[j-salto];
c1[j-salto]=aux;
aux2=c2[j];
c2[j]=c2[j-salto];
c2[j-salto]=aux2;
aux1=Nombre[j];
Nombre[j]=Nombre[j-salto];
Nombre[j-salto]=aux1;
String au;
int array[];
int x;
int z[],a[];
String y[];
String resultado2="";
y=new String[x];
//JOptionPane.showMessageDialog(null,"Quick Sort");
JOptionPane.showMessageDialog(null,""+resultado);
"Ordenar por",
"Seleccion De Opciones",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
new Object[] { "Por Placa", "Por Año","Salir" }, // null para YES, NO y CANCEL
"");
resultado2="";
if (seleccion == JOptionPane.YES_OPTION){
Quicksort(a,z,y,0,a.length-1);
JOptionPane.showMessageDialog(null,""+resultado2);
if (seleccion == JOptionPane.NO_OPTION) {
Quicksort(z,a,y,0,a.length-1);
//JOptionPane.showMessageDialog(null,"Valores despues de QuickSort:");
JOptionPane.showMessageDialog(null,""+resultado2);
opcion = false;
if (seleccion == JOptionPane.CANCEL_OPTION){
System.exit(0);
} } }
if(p < r)
Quicksort(arr,arr1,arr3, p, q - 1);
Quicksort(arr,arr1,arr3, q + 1, r);
}}
int x = arr[r];
int i = p - 1, t;
String w;
if(arr[j] <= x) {
i++;
t = arr[i];
arr[i] = arr[j];
arr[j] = t;
t = arr1[i];
arr1[i] = arr1[j];
arr1[j] =t;
w = arr3[i];
arr3[i] = arr3[j];
arr3 [j] = w;
}}
t = arr[i + 1];
arr[i + 1] = arr[r];
arr[r] = t;
t = arr1[i+1];
arr1[i+1]=arr1[r];
arr1[r] = t;
w = arr3 [i + 1];
arr3[i + 1] = arr3[r];
arr3[r] = w;
return i + 1;
}
Estructura de datos II
Practicas
Metodo de shell
Metodo Quicksort