Sie sind auf Seite 1von 9

Ingeniería en Desarrollo de Software

4º semestre
Materia: Estructura de datos
Alumno: Daniel Pineda de la Riva
Matricula: es162006588
Docente: Mario Alberto Talavera Soto
Unidad 2
Actividad 2. Identificación de errores en un
método de búsqueda.
1.-Primero que nada, tendrán que explicar en el método de búsqueda “Búsqueda
Secuencial”.

BUSQUEDA SECUENCIAL

• Búsqueda secuencial consiste en revisar elemento por elemento hasta encontrar el dato
buscado, o hasta llegar al final de la lista de datos disponible.

• CARACTERISTICAS

• La búsqueda se puede realizar en arreglos desordenados.

• El método es totalmente confiable.

• El número de comparaciones es significativa si el arreglo es muy grande.

• En arreglos desordenados de N componentes puede suceder que el elemento no se


encuentre, por lo tanto se harán N comparaciones al recorrer todo el arreglo

• Cantidad mínima de comparaciones es 1.

• Cantidad media de comparaciones es (1+N)/2.

• Cantidad máxima de comparaciones es N.

Empezar por el principio y continuar hasta encontrar la clave correcta: entonces parar.
Este procedimiento secuencial es la forma obvia para buscar y nos ofrece un punto de
partida útil para nuestra discusión sobre la búsqueda, ya que la mayoría de los algoritmos
más complicados se basan en él. La búsqueda secuencial incluye algunas ideas
interesantes a pesar de su simplicidad. El algoritmo seria el siguiente:
2.-Menciona el tipo de Método que estamos utilizando en esta programación y
explícalo.

He aquí el código:

public int busquedaSecuencial (int []arreglo,int dato) { int posicion = -1;

for (int = 0; i < arreglo.length; i++) { //recorremos todo el arreglo

if (arreglo[i] == dato)

{ //comparamos el elemento en el arreglo con el buscado

posicion = ; //Si es verdadero guardamos la posición

break; //Para el ciclo debe de ir abajo para parar el ciclo

return posicion;

Se está utilizando el método de búsqueda secuencial en donde se compara cada


elemento del vector con el valor deseado, hasta que este encuentra o termina de leer el
vector completo. El recorrido del vector se realizara normalmente con estructuras
repetitivas. Para la búsqueda secuencial el vector no necesita estar ordenado.
3.-Identifica y sustituye los errores incluidos en el método del código y explicar los
errores que encontraste.

public int busquedaSecuencial (int arreglo[],int dato) //falta declarar tipo de dato de la
función int

{ // corchetes van delante de arreglo[]

int posicion = -1;

for (i = 0; i < arreglo.length; i++) // i va en lugar de int

{ //recorremos todo el arreglo

if (arreglo[i] == dato)

{ //comparamos el elemento en el arreglo con el buscado

posicion = i ; // falta valor para posicion //Si es verdadero guardamos la


posición

break; //Para el ciclo debe de ir abajo para parar el ciclo

} // falta llave de if

} //llave for

return posicion;

} //llave de función
4.- Documenta la programación ya corregido para su funcionamiento.

public int busquedaSecuencial (int arreglo[],int dato)

{ int posicion = 1;

for (i = 0; i < arreglo.length; i++)

{ //recorremos todo el arreglo

if (arreglo[i] == dato)

{ //comparamos el elemento en el arreglo con el buscado

posicion = i ;

break;

return posicion;

A continuación se muestra un código con mas detalle para presentar la búsqueda


secuencial

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class BusquedaSecuencial extends JFrame implements ActionListener {

private JButton btnbuscar;

private JTextField num;

private Label lbl;

int[] valores = {20,10,100,5,30,0,3,500,50,1};//vector donde aremos la busqueda


//metodo donde creo y añado los controles

public void Controles(){

//panel Contenedor

Container contenedor = getContentPane();

contenedor.setLayout( new FlowLayout(FlowLayout.CENTER) );

//agrego los controles al contenedor

lbl = new Label("Numero a Buscar");

contenedor.add(lbl);

num = new JTextField(10);

contenedor.add(num);

btnbuscar = new JButton("Buscar");

contenedor.add(btnbuscar);

btnbuscar.addActionListener(this);

//constructor

public BusquedaSecuencial(){

super("Busqueda Secuencial");

//cargo controles

Controles();

//tamaño ventana y mostrar y centrar

setSize(350,120);

setLocationRelativeTo(null);//centrar

setVisible(true);

//evento del boton


public void actionPerformed(ActionEvent e){

if (e.getSource()==btnbuscar){

int x;

x = Integer.parseInt(num.getText());

if(BusquedaSecuencial(valores,x) !=-1){

JOptionPane.showMessageDialog(null,

"El Dato"+" "+ x + " "+ "Esta en la Posicion: "+ BusquedaSecuencial(valores,x),

"Busqueda",JOptionPane.INFORMATION_MESSAGE);

else

JOptionPane.showMessageDialog(null, "El Dato no se Encuentra",

"Error",JOptionPane.ERROR_MESSAGE);

//metodo de busqueda secuencial

public static int BusquedaSecuencial(int vector[], int Elem){

for (int i = 0; i < vector.length; ++i)

if (vector[i] == Elem)

return i;

return -1;

public static void main(String[] args) {

JFrame.setDefaultLookAndFeelDecorated(true);

BusquedaSecuencial busqueda = new BusquedaSecuencial();//Instanciamos la clase


que creamos
busqueda.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//cerrar ventana

5.-Justifica si el método es unos de los más adecuados para el caso.

 Transposición: cada vez que se lleve a cabo una búsqueda exitosa, el registro
correspondiente se intercambia con el anterior.
 Ordenamiento: es útil cuando la lista es una lista de excepciones.
 Movimiento hacia enfrente: consiste en que la lista de registros se reorganice
dinámicamente.
 Muestreo de acceso: Frecuentemente se solicita cada registro y ordenarlos de
acuerdo a las probabilidades de acceso detectadas.

La búsqueda secuencial es de gran utilidad cuando se tienen datos no ordenados. Esta


búsqueda es sencilla de implementar e intuitiva ya que consiste en buscar de manera
secuencial un elemento.

Se recomienda que si se encuentra el elemento buscado se debe visualizar un mensaje


similar a “fin de búsqueda” o “elemento encontrado” y otro que diga “posición=” en caso
contrario, visualizar un mensaje similar a “elemento no existe en la lista”. Esto para para
que se tenga una mejor apariencia del programa realizado.
Referencias

D.E. Knuth. (2002). El arte de programar ordenadores. Barcelona: Reverte.

Jesús J. Rodríguez Sala. (2003). Introducción a la programación. San Vicente: Ecu.

Ángel Arias. (2016). Curso de programación en Java. España: IT Campus Academy.

Das könnte Ihnen auch gefallen