Sei sulla pagina 1di 7

Estructura de Datos

(DS-DDBD-1701-B1-002)

24/08/2017

Identificacin de los
errores en los algoritmos
de bsqueda
Actividad 2.

Erick Andrade Ortega


Matricula: ES1611304056
1. Codificar el algoritmo de ordenacin rpida (quicksort)

El cdigo fue consultado de https://www.programcreek.com en el tema Quicksort Array in Java.

package quickshort;

import java.util.Arrays;

/**

* @author androide

*/

public class QuickShort {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

int[] x = { 1, 19, 22, 2, 17, 3, 12, 10 };

System.out.println(Arrays.toString(x));

int low = 0;

int high = x.length - 1;

quickSort(x, low, high);

System.out.println(Arrays.toString(x));

public static void quickSort(int[] arr, int low, int high) {

if (arr == null || arr.length == 0)

return;

if (low >= high)

return;
// seleccionamos el pivote

int middle = low + (high - low) / 2;

int pivot = arr[middle];

//izquierda < pivote y derecha > pivote

int i = low, j = high;

while (i <= j) {

while (arr[i] < pivot) {

i++;

while (arr[j] > pivot) {

j--;

if (i <= j) {

int temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

i++;

j--;

// sub partes de recursividad

if (low < j)

quickSort(arr, low, j);

if (high > i)

quickSort(arr, i, high);

}
EVIDENCIA

2. Actividad 2.1: La moda de un conjunto de nmeros es el nmero que ocurre con ms


frecuencia en el conjunto. Por ejemplo, el conjunto S = {(4, 6, 2, 4, 3, 1} tiene moda 4.
Proporcionar un algoritmo eficiente y correcto para determinar la moda y codificarlo, la
entrada es un conjunto de n nmeros.

El cdigo se consult http://lineadecodigo.com/

package moda;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Map.Entry;

import java.util.Stack;

/**

* @author androide

*/

public class Moda {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

int[] elementos = {1,3,3,5,2,4,1,43,1,23,1};

Map<Integer,Integer> m = new HashMap<Integer,Integer>();

for (int elemento: elementos){

if (m.containsKey(elemento))
m.put(elemento,m.get(elemento)+1);

else

m.put(elemento,1);

int repeticiones = 0;

Stack <Integer> moda = new Stack <Integer>();

Iterator<Entry<Integer, Integer>> iter = m.entrySet().iterator();

while (iter.hasNext()) {

Entry<Integer,Integer> e = iter.next();

if (e.getValue() > repeticiones) {

moda.clear();

moda.add(e.getKey());

repeticiones = e.getValue();

} else if (e.getValue() == repeticiones)

moda.add(e.getKey());

if (moda.size() == elementos.length)

System.out.println("No hay moda");

else

System.out.println("La moda de la distribucin es " + moda);

}
EVIDENCIA

3. Actividad 2.4: Buscar que tipo de espulgador tiene su IDE. Indicar y ejemplificar el uso del
espulgador (debugger) dentro de los programas solicitados en esta actividad. En particular,
como y para que realizar puntos de paro y el rastreo del contenido de una variable
particular. A esta etapa se le conoce como espulgado (debugging). Para los compiladores
cc, gcc, tenemos el espulgador gdb para analizar los estados del programa, en java usamos
jdb

En la imagen se observa que se hizo uso del debugger as como se cre un paro en
m.put(elemento,m.get(elemento)+1); para poder ver los valores de las variables, en la parte inferior
de la imagen se observa los valores de las variables por ejemplo la variable elemento su valor en el
primer paso es 3.
REFERENCIAS

Quicksort Array in Java consultado el 23 de Agosto en https://www.programcreek.com

Moda en JAVA consultado el 24 de Agosto en http://lineadecodigo.com/

Potrebbero piacerti anche