8
Estructura De Datos Trabajo Final Página 1 INSTITUTO TECNOLÓGICO DE CD. VICTORIA INGENIERÍA EN SISTEMAS COMPUTACIONALES UNIDAD ACADEMICA DE ABASOLO TAMAULIPAS MATERIA: Estructura De Datos ACTIVIDAD: Trabajo Final U5. ASESOR: JESUS EMMANUEL HERNANDEZ ARANDA. ALUMNOS: Julio Cesar Resendiz Ramírez 11380876 Oscar Abelino Pérez Montoya 10380893 Karla Liliana Hinojosa Figueroa 09380094 Abasolo Tamaulipas a 18 de Junio del 2012.

COMPARACION DE LOS METODOS DE ORDENAMIENTO

Embed Size (px)

DESCRIPTION

Comparación de los diferentes métodos de ordenamiento asi como el codigo fuente del programa creado en el IDE NETBEANS con el cual se realizo dicha comparacion, este funciona con un Array de 100 numeros aleratorios.

Citation preview

Page 1: COMPARACION DE LOS METODOS DE ORDENAMIENTO

Estructura De Datos Trabajo Final Página 1

INSTITUTO TECNOLÓGICO DE CD. VICTORIA

INGENIERÍA EN SISTEMAS

COMPUTACIONALES

UNIDAD ACADEMICA DE ABASOLO TAMAULIPAS

MATERIA: Estructura De Datos

ACTIVIDAD: Trabajo Final U5.

ASESOR: JESUS EMMANUEL HERNANDEZ ARANDA.

ALUMNOS:

Julio Cesar Resendiz Ramírez 11380876

Oscar Abelino Pérez Montoya 10380893

Karla Liliana Hinojosa Figueroa 09380094

Abasolo Tamaulipas a 18 de Junio del 2012.

Page 2: COMPARACION DE LOS METODOS DE ORDENAMIENTO

Estructura De Datos Trabajo Final Página 2

METODO DE ORDENAMIENTO

CANTIDAD DE ELEMENTOS

TOTAL DE TIEMPO DE EJECUCION (SEGUNDOS)

COMPARACIONES Y COMENTARIOS

Burbuja

100 1. 0 2. 0 3. 0 4. 0 5. 0

Al realizar la ejecución de los métodos 5 veces se observó que es eficiente.

QuickSort

100 1. 0 2. 0 3. 0 4. 0 5. 0

Al realizar la ejecución se observó que el método es eficiente al igual que método burbuja.

Shell Sort

100 1. 0 2. 0 3. 0 4. 0 5. 0

Se observó que el método es similar al método burbuja y quick short.

Radix

100 1. 5 2. 1 3. 0 4. 1 5. 0

Se puede observar que al ejecutar el Radix es menos eficiente que a los 3 métodos pasados, ya que el tiempo de ejecución es mayor.

Page 3: COMPARACION DE LOS METODOS DE ORDENAMIENTO

Estructura De Datos Trabajo Final Página 3

//Julio Cesar Resendiz Ramirez

//Oscar Abelino Perez Montoya

//Karla Liliana Hinojosa Figueroa

package edd_trabajo.pkgfinal.u5;

public class EdD_TrabajoFinalU5 {

void burbuja(int[] arr, int n){

int temporal;

for(int i=0; i<n-1 ; i++ ) {

for(int j=i+1 ; j< n ; j++) {

if(arr[j]<arr[i]){

temporal = arr[j];

arr[j] = arr[i];

arr[i] = temporal;

}

}

}

}

void radixSort(int[] arr){

if(arr.length == 0) {

return;

}

int[][] np = new int[arr.length][2];

int[] q = new int[0x100];

int i,j,k,l,f = 0;

Page 4: COMPARACION DE LOS METODOS DE ORDENAMIENTO

Estructura De Datos Trabajo Final Página 4

for(k=0;k<4;k++){

for(i=0;i<(np.length-1);i++) {

np[i][1] = i+1;

}

np[i][1] = -1;

for(i=0;i<q.length;i++) {

q[i] = -1;

}

for(f=i=0;i<arr.length;i++){

j = ((0xFF<<(k<<3))&arr[i])>>(k<<3);

if(q[j] == -1) {

l = q[j] = f;

}

else{

l = q[j];

while(np[l][1] != -1) {

l = np[l][1];

}

np[l][1] = f;

l = np[l][1];

}

f = np[f][1];

np[l][0] = arr[i];

np[l][1] = -1;

}

}

Page 5: COMPARACION DE LOS METODOS DE ORDENAMIENTO

Estructura De Datos Trabajo Final Página 5

}

void shellSort( int vec []) {

for( int p = vec.length / 2; p > 0; p = p == 2 ? 1 : (int) ( p / 2.2 ) ) {

for( int i = p; i < vec.length; i++) {

int tmp = vec[i];

int j;

for(j = i; j >= p && tmp < vec[j - p]; j -= p ) {

vec[j] = vec[j - p];

}

vec[j] = tmp;

}

}

}

void quicksort(int[] v) {

final int N = v.length;

quickSort(v,0,N-1);

}

public static void quickSort(int[] v, int inicio, int fin) {

if(inicio>=fin) return ;

int pivote = v[inicio];

int izq = inicio+1;

int der = fin;

while(izq<=der) {

while(izq<=fin && v[izq]< pivote) izq++;

while(der>inicio && v[der]>=pivote) der--;

if(izq<der) {

Page 6: COMPARACION DE LOS METODOS DE ORDENAMIENTO

Estructura De Datos Trabajo Final Página 6

int tmp = v[izq];

v[izq] = v[der];

v[der] = tmp;

}

}

if(der>inicio) {

int tmp = v[inicio];

v[inicio]= v[der];

v[der] = tmp;

}

quickSort(v,inicio, der-1);

quickSort(v, der+1, fin);

}

public static void main(String[] args) {

int i;

int primero;

int v[]=new int[100];

for(primero=0;primero<100;primero=primero+1) {

v[primero]=(int) ((100-1)*Math.random()+primero);

}

for(primero=0;primero<100;primero=primero+1);

EdD_TrabajoFinalU5 Joy=new EdD_TrabajoFinalU5();

long B1 = System.currentTimeMillis();

Joy.burbuja(v,primero);

long B2= System.currentTimeMillis();

System.out.println ("\n El metodo de la Burbuja ha tardado " + (B2-B1) + " segundos \n");

Page 7: COMPARACION DE LOS METODOS DE ORDENAMIENTO

Estructura De Datos Trabajo Final Página 7

System.out.print("Metodo de la Burbuja \n");

for(i=0;i<v.length;i++) {

System.out.print(v[i] + " ");

}

long S1 = System.currentTimeMillis();

Joy.shellSort(v);

long S2= System.currentTimeMillis();

System.out.println ("\n\nEl metodo de SellSort ha tardado " + (S2-S1) + " segundos \n");

System.out.print("Metodo de la shellsort \n");

for(i=0;i<v.length;i++) {

System.out.print(v[i] + " ");

}

long R1 = System.currentTimeMillis();

Joy.radixSort(v);

long R2= System.currentTimeMillis();

System.out.println ("\n\nEl metodo de RadixSort ha tardado " + (R2-R1) + " segundos \n");

System.out.print("Metodo de la radixsort \n");

for(i=0;i<v.length;i++) {

System.out.print(v[i] + " ");

}

long Q1 = System.currentTimeMillis();

Joy.quicksort(v);

long Q2= System.currentTimeMillis();

System.out.println ("\n\nEl metodo de quicksort ha tardado " + (Q2-Q1) + " segundos \n");

System.out.print("Metodo de la quicksort \n");

for(i=0;i<v.length;i++) {

Page 8: COMPARACION DE LOS METODOS DE ORDENAMIENTO

Estructura De Datos Trabajo Final Página 8

System.out.print(v[i] + " ");

}

}

}