La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

{ Grupo Tyrex Integrantes: Alberto Melgar Michael Lama.

Presentaciones similares


Presentación del tema: "{ Grupo Tyrex Integrantes: Alberto Melgar Michael Lama."— Transcripción de la presentación:

1 { Grupo Tyrex Integrantes: Alberto Melgar Michael Lama

2 Radix sort Es un algoritmo de ordenamiento que funciona ordenando un numero en base a sus dígitos. Es de orden (kn), donde k es la cantidad de dígitos que tiene el mayor numero.

3 Radix sort LSDMSD Existen 2 tipos de ordenamiento radix: LSD(Least Significant Digit) y MSD(Most significant Digit)

4 Radix sort Como funciona? 0 1 2362 3 4 5 6 7 8 9

5 Radix sort Como funciona? 0 1 2362 3 4 5 6436 7 8 9

6 Radix sort Como funciona? 0 1291 2362 3 4 5 6436 7 8 9

7 Radix sort Como funciona? 0 1291 2362 3 4 5 6436 7487 8 9

8 Radix sort Como funciona? 0 1291 2362 3 4 5 6436 7487, 207 8 9

9 Radix sort Como funciona? 0 1291 2362 3253 4 5 6436 7487, 207 8 9

10 Radix sort Como funciona? 0 1291 2362 3253 4 5 6436 7487, 207, 397 8 9

11 Radix sort Como funciona? 0 1 2 3 4 5 6 7 8 9291

12 Radix sort Como funciona? 0 1 2 3 4 5 6362 7 8 9291

13 Radix sort Como funciona? 0 1 2 3 4 5253 6362 7 8 9291

14 Radix sort Como funciona? 0 1 2 3436 4 5253 6362 7 8 9291

15 Radix sort Como funciona? 0 1 2 3436 4 5253 6362 7 8487 9291

16 Radix sort Como funciona? 0207 1 2 3436 4 5253 6362 7 8487 9291

17 Radix sort Como funciona? 0207 1 2 3436 4 5253 6362 7 8487 9291, 397

18 Radix sort Como funciona? 0 1 2207 3 4 5 6 7 8 9

19 Radix sort Como funciona? 0 1 2207 3 4436 5 6 7 8 9

20 Radix sort Como funciona? 0 1 2207,253 3 4436 5 6 7 8 9

21 Radix sort Como funciona? 0 1 2207,253 3362 4436 5 6 7 8 9

22 Radix sort Como funciona? 0 1 2207,253 3362 4436, 487 5 6 7 8 9

23 Radix sort Como funciona? 0 1 2207,253, 291 3362 4436, 487 5 6 7 8 9

24 Radix sort Como funciona? 0 1 2207,253, 291 3362, 397 4436, 487 5 6 7 8 9

25 Radix sort Ejemplo de animación http://www.cs.armstrong.edu/liang/animat ion/RadixSortAnimation.html

26 public static void RadixSort(int[] n) { if (n.length == 0) { if (n.length == 0) { return; return; } int[][] np = new int[n.length][2]; int[][] np = new int[n.length][2]; int[] q = new int[0x100]; int[] q = new int[0x100]; int i, j, k, l, f = 0; int i, j, k, l, f = 0; for (k = 0; k < 4; k++) { for (k = 0; k < 4; k++) { for (i = 0; i < (np.length - 1); i++) { for (i = 0; i < (np.length - 1); i++) { np[i][1] = i + 1; np[i][1] = i + 1; } np[i][1] = -1; np[i][1] = -1; for (i = 0; i < q.length; i++) { for (i = 0; i < q.length; i++) { q[i] = -1; q[i] = -1; } for (f = i = 0; i < n.length; i++) { for (f = i = 0; i < n.length; i++) { j = ((0xFF > (k > (k << 3); if (q[j] == -1) { if (q[j] == -1) { l = q[j] = f; l = q[j] = f; } else { } else { l = q[j]; l = q[j]; while (np[l][1] != -1) { while (np[l][1] != -1) { l = np[l][1]; l = np[l][1]; } np[l][1] = f; np[l][1] = f; l = np[l][1]; l = np[l][1]; } f = np[f][1]; f = np[f][1]; np[l][0] = n[i]; np[l][0] = n[i]; np[l][1] = -1; np[l][1] = -1; } for (l = q[i = j = 0]; i < 0x100; i++) { for (l = q[i = j = 0]; i < 0x100; i++) { for (l = q[i]; l != -1; l = np[l][1]) { for (l = q[i]; l != -1; l = np[l][1]) { n[j++] = np[l][0]; n[j++] = np[l][0]; } } } }

27 public String execute(lista l) { String[][] mat = new String[10][l.tamano]; String[][] mat = new String[10][l.tamano]; for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) { for (int i2 = 0; i2 < l.tamano; i2++) { for (int i2 = 0; i2 < l.tamano; i2++) { mat[i][i2] = ""; mat[i][i2] = ""; }//fin del for }//fin del for String x = ""; String x = ""; int digito = 1; int digito = 1; char f = ' '; char f = ' '; for (int i = 0; i < obtenerDigito(l); i++) { for (int i = 0; i < obtenerDigito(l); i++) { for (int i2 = 0; i2 < l.tamano; i2++) { for (int i2 = 0; i2 < l.tamano; i2++) { System.out.println("i2=" + i2); System.out.println("i2=" + i2); x = l.getNodo(i2).info.toString(); x = l.getNodo(i2).info.toString(); int h = x.length() - 1; int h = x.length() - 1; if (i == 0) { if (i == 0) { f = x.charAt(h); f = x.charAt(h); }//fin del if }//fin del if else { else { if (h < digito) { if (h < digito) { f = '0'; f = '0'; }//fin del if }//fin del if else { else { f = x.charAt(h - digito); f = x.charAt(h - digito); }//fin del else }//fin del else switch (f) { switch (f) { case '0': case '0': for (int i5 = 0; i5 < l.tamano; i5++) { for (int i5 = 0; i5 < l.tamano; i5++) { if ("".equals(mat[0][i5])) { if ("".equals(mat[0][i5])) { mat[0][i5] = x; mat[0][i5] = x; break; break; } }//fin del for }//fin del for break; break; case '1': case '1': for (int i5 = 0; i5 < l.tamano; i5++) { for (int i5 = 0; i5 < l.tamano; i5++) { if ("".equals(mat[1][i5])) { if ("".equals(mat[1][i5])) { mat[1][i5] = x; mat[1][i5] = x; break; break; } } case '2': case '2': for (int i5 = 0; i5 < l.tamano; i5++) { for (int i5 = 0; i5 < l.tamano; i5++) { if ("".equals(mat[2][i5])) { if ("".equals(mat[2][i5])) { mat[2][i5] = x; mat[2][i5] = x; break; break; } } case '3': case '3': for (int i5 = 0; i5 < l.tamano; i5++) { for (int i5 = 0; i5 < l.tamano; i5++) { if ("".equals(mat[0][i5])) { if ("".equals(mat[0][i5])) { mat[3][i5] = x; mat[3][i5] = x; break; break; } } case '4': case '4': for (int i5 = 0; i5 < l.tamano; i5++) { for (int i5 = 0; i5 < l.tamano; i5++) { if ("".equals(mat[0][i5])) { if ("".equals(mat[0][i5])) { mat[4][i5] = x; mat[4][i5] = x; break; break; }//fin del if }//fin del if } break; break; case '5': case '5': for (int i5 = 0; i5 < l.tamano; i5++) { for (int i5 = 0; i5 < l.tamano; i5++) { if ("".equals(mat[0][i5])) { if ("".equals(mat[0][i5])) { mat[5][i5] = x; mat[5][i5] = x; break; break; } } case '6': case '6': for (int i5 = 0; i5 < l.tamano; i5++) { for (int i5 = 0; i5 < l.tamano; i5++) { if ("".equals(mat[0][i5])) { if ("".equals(mat[0][i5])) { mat[6][i5] = x; mat[6][i5] = x; break; break; } } case '7': case '7': for (int i5 = 0; i5 < l.tamano; i5++) { for (int i5 = 0; i5 < l.tamano; i5++) { if ("".equals(mat[0][i5])) { if ("".equals(mat[0][i5])) { mat[7][i5] = x; mat[7][i5] = x; break; break; } } case '8': case '8': for (int i5 = 0; i5 < l.tamano; i5++) { for (int i5 = 0; i5 < l.tamano; i5++) { if ("".equals(mat[0][i5])) { if ("".equals(mat[0][i5])) { mat[8][i5] = x; mat[8][i5] = x; break; break; } } case '9': case '9': for (int i5 = 0; i5 < l.tamano; i5++) { for (int i5 = 0; i5 < l.tamano; i5++) { if ("".equals(mat[0][i5])) { if ("".equals(mat[0][i5])) { mat[9][i5] = x; mat[9][i5] = x; break; break; } } }//fin del switch }//fin del switch }//fin del for }//fin del for digito++; digito++; lista temp = new lista(); lista temp = new lista(); for (int i5 = 0; i5 < 10; i5++) { for (int i5 = 0; i5 < 10; i5++) { for (int i6 = 0; i6 < l.tamano; i6++) { for (int i6 = 0; i6 < l.tamano; i6++) { if (!"".equals(mat[i5][i6])) { if (!"".equals(mat[i5][i6])) { temp.insertar(mat[i5][i6]); temp.insertar(mat[i5][i6]); }//fin del if }//fin del if }//fin del for }//fin del for l.liberate(); l.liberate(); for (int i5 = 0; i5 < temp.tamano; i5++) { for (int i5 = 0; i5 < temp.tamano; i5++) { l.insertar(temp.getNodo(i5).info); l.insertar(temp.getNodo(i5).info); }//fin del for }//fin del for for (int i5 = 0; i5 < 10; i5++) { for (int i5 = 0; i5 < 10; i5++) { for (int i6 = 0; i6 < l.tamano; i6++) { for (int i6 = 0; i6 < l.tamano; i6++) { mat[i5][i6] = ""; mat[i5][i6] = ""; }//fin del for }//fin del for }//fin del primer for }//fin del primer for String ret = ""; String ret = ""; for (int i = 0; i < l.tamano; i++) { for (int i = 0; i < l.tamano; i++) { ret += l.getNodo(i).info.toString() + ","; ret += l.getNodo(i).info.toString() + ","; }//fin del for }//fin del for return ret; return ret; }//fin del metodo }//fin del metodo


Descargar ppt "{ Grupo Tyrex Integrantes: Alberto Melgar Michael Lama."

Presentaciones similares


Anuncios Google