Sie sind auf Seite 1von 9

INSTITUTO TECNOLOGICO DE

COMITANCILLO
Espritu tecnolgico reflejo de trabajo y libertad

ASIGNATURA:

Estructura de datos.

NOMBRE DEL DOCENTE:


Marlene Prez Cruz.
NOMBRE DEL ALUMNO:
Jesse Uriel Lopez Lopez

TRABAJO:
Reporte De La Unidad V
Mtodos De Ordenamiento.

CARRERA:
ING. INFORMATICA

SEMESTRE:
3

GRUPO:
A

SAN PEDRO COMITANCILLO, OAX.

METODOS DE ORDENAMIENTO:
En el siguiente programa obtiene la eficiencia de cada mtodo de ordenacin y
bsqueda, a travs del nmero de intercambios y el tiempo de ejecucin de cada
mtodo. E indique cuantas comparaciones e intercambios se realizaron para cada
mtodo. Debe realizar pruebas con una lista de elementos ordenados y listas de
elementos desordenados, dicha lista debe de tener un rango de 100 elementos e
indicar los mismos nmeros en el mismo orden para cada mtodo.
Los mtodos de ordenamiento son: Shell, insercin directa, seleccin directa,
quick sort, mezcla, burbuja, intercalaciones.
EL PROGRAMA CONSTA DE 5 CLASES, LAS CUALES SON:
*ArregloUni
*DemoOrdenamiento (principal)
*Leer
*Ordenamiento
*OrdenamientoQuickSort
La que realizamos en la clase ArregloUni es:
Declaramos variables dando como mximo de datos a 100, guardamos la cantidad
de nmeros ingresados y retornamos los valores en un dato tipo int llamado n,
despus guardamos los nmeros ingresados en el mtodo llamado ingreso y
seguimos las instrucciones, al igual contiene otros mtodos los cuales son:
*Localizar,insertar,suprimir.

La siguiente clase que utilizaremos ser la principal llamada DemoOrdenamiento


esta clase contiene el men de las opciones que utilizaremos.

La siguiente clase que utilizaremos ser Leer y realiza lo siguiente:


Define flujos de caracteres de entrada, devuelve el dato tecleado.

La siguiente clase que utilizaremos ser Ordenamiento y realiza es simplemente


visualizar los recorridos en tiempo de ejecucin y el orden final del proceso.

AL ejecutar el programa nos pedir ingresar el total de elementos y enseguida los


elementos que queremos como datos, realizado eso se desplegara el men en el
cual ejecutaremos los mtodos de ordenamiento y el tiempo de ejecucin que
tomo correspondiente al mtodo seleccionado.

La clase OrdenamientoQuickSort es uno de los mtodos ms rpidos para ordenar


datos en esta ocasin esta clase realiza el ordenamiento de x nmeros aleatorios

Cdigo:
public class OrdenamientoQuickSort {
private long[] a;
private int nElems;
public OrdenamientoQuickSort(int max){
a=new long[max];
nElems=max;
}

public void llenar(long value){


for(int k=0; k<value; k++)
a[k]=(int)(Math.random()*10);
}
public void display(){
for(int l=0; l<nElems; l++)
System.out.print(a[l]+" ");
System.out.println("");
}
public void quickSort(){
recQuickSort(0, nElems-1);
}
public void recQuickSort(int left, int right){
if(right-left<=0) return;
else{
long pivot=a[right];
int partition=partitionIt(left, right, pivot);
recQuickSort(left, partition-1);
recQuickSort(partition+1, right);
}
}
public int partitionIt(int left, int right, long pivot){
int leftPtr=left-1;
int rightPtr=right;
while(true){
while(a[++leftPtr]<pivot);
while(rightPtr>0&&a[--rightPtr]>pivot);
if(leftPtr>=rightPtr)break;
else swapqs(leftPtr, rightPtr);
}
swapqs(leftPtr, right);
return leftPtr;
}
public void swapqs(int dex1, int dex2){
long temp=a[dex1];
a[dex1]=a[dex2];
a[dex2]=temp;
}
public static void main(String[] args){

int diez=10;
OrdenamientoQuickSort arr;
arr=new OrdenamientoQuickSort(diez);
arr.llenar(diez);
arr.display();
arr.quickSort();
arr.display();
long tini = 0;
double ttot=0;
tini = System.nanoTime();
ttot = Double.valueOf(System.nanoTime()-tini)*0.000000001;
System.out.println(ttot+ "milisegundos");
}

Das könnte Ihnen auch gefallen