Searching data in Arrays

Slides:



Advertisements
Presentaciones similares
Método de ordenación por inserción
Advertisements

Diseño y análisis de algoritmos
Ordenamiento de Arreglos
Conceptos Básicos Prof. Carlos Rodríguez Sánchez
Searching data in Arrays COMP 242. Linear Search Algoritmo: Comenzando con el primer elemento, se compara cada uno con el valor a buscar y se detiene.
Arithmetic Operators & Operators Precedence
6 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática Universidad.
Ejemplo de Programa C++
7 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática Universidad.
Algoritmos de Búsqueda
Introducción a la Computación
C++ vs C Los códigos de C++ están copiados de la documentación de PRO1.
SOBRECARGA DE FUNCIONES
1 Chapter 8 Scope Dale/Weems/Headington. 2 Tópicos del Capítulo 8 l Local Scope vs. Global Scope of an Identifier l Detailed Scope Rules to Determine.
Chapter 7 Functions Dale/Weems/Headington. 2 Tópicos Capítulo 7 l Writing a Program Using Functional Decomposition l Writing a Void Function for a Task.
Programación orientada a objetos
Introducción a la Computación
Sección 5-2 Estructuras de Control de Decisión Expresiones Lógicas.
ÁRBOLES BINARIOS DE BÚSQUEDA
Concepto de tupla Las tuplas son estructuras de datos que constan de varios campos que pueden contener datos de tipos distintos. El acceso al contenido.
Capítulo 5. Punteros y Cadenas de Caracteres
Análisis de Algoritmos
Ordenación y Búsquedas1UVM Ordenación y Búsqueda.
1 Chapter 12 Arrays Dale/Weems/Headington. 2 Chapter 12 Topics l Declaring and Using a One-Dimensional Array l Passing an Array as a Function Argument.
Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 2- 1.
Chapter 6 Looping Dale/Weems/Headington. 2 Chapter 6 Topics l While Statement Syntax l Count-Controlled Loops l Event-Controlled Loops l Using the End-of-File.
Programación Orientada a Objetos
1 Asignación Dinámica de Memoria Agustín J. González Versión original de Kip Irvine ELO 329.
Laboratorio Análisis y Diseño de Algoritmos 2 Biblioteca estándar de templates de C++ Standard Template Library (STL)‏ Motivación Ejemplo: Lista + Iterador.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
Eficiencia en uso de recursos y memoria
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
1 Asignación Dinámica de Memoria Agustín J. González ELO 329.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
INTRODUCCIÓN AL LENGUAJE C++. Instrucciones Temas.
Programación orientada a objetos Capítulo 4 Agrupar objetos.
Algoritmo.
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
int cantidad, horas, cuota; float precio, peso; cantidad = 5; // Le asigno un número a la variable Cantidad; horas = // Le asigno 30 a la variable.
Arreglos Ejemplo paso a paso. Planteamiento Como estudiante de ingeniería, quieres usar tus habilidades de programador para llevar un registro de tus.
Desarrollador Profesional de Juegos Programación III Unidad I El manejador universal.
ARREGLOS O ARRAYS.
ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
1 ListaUna Lista se define como una serie de N elementos E 1, E 2,..., E N, ordenados de manera consecutiva, es decir, el elemento E k (que se denomina.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
Entrada y Salida en C++, Estructuras de Control Prof. Manuel B. Sánchez.
2012-BM5A. Unos tips antes de empezar: C# es Case Sensitive (sensible a mayúsculas) Pepe ≠ pepe ≠ pEpE Las asignaciones se hacen con “=” y las comparaciones.
Búsqueda binaria Integrantes: Humberto Raíz Walter Gómez Isabel Hernández.
BUSQUEDAS BINARIAS Y SECUENCIALES Hernández Salazar Alma Pérez González Luis Alberto Villa Méndez Edgar Adrián Villegas Titla Jorge Ramsés Ríos Álvarez.
Conceptos Básicos Prof. Carlos Rodríguez Sánchez
Árboles binarios. Algoritmos básicos
IntroducciÓn a los Arreglos (“arrays”) en C++
Prof. Carlos Rodríguez Sánchez
Lenguaje C++ Problemas.
Vectors (Vectores)‏ e Iteradores
Ordenamiento de Arreglos
Arreglos en C++ (una y dos dimensiones)
Uso de Archivos de Datos en C++
Programación Orientada a Objetos
Vectors (Vectores)‏ e Iteradores
Árboles Binario de Búsqueda
++
METODOS DE ORDENAMIENTO CHRISTIAN MICHAEL OBANDO GARCES JOAO ADRIAN BARIONUEVO.
Vectors (Vectores)‏ Agustín J. González ELO329.
Árboles Binarios Estructuras de Datos.
Casos de prueba con JUnit
Arrays Programming COMP102 Prog. Fundamentals I: Arrays / Slide 2 Arrays l An array is a collection of data elements that are of the same type (e.g.,
Manejo de Excepciones en C++
Árboles Binarios Estructuras de Datos. Las estructuras dinámicas son las en la ejecución varia el número de elementos y uso de memoria a lo largo del.
Transcripción de la presentación:

Searching data in Arrays

Linear Search Algoritmo: Comenzando con el primer elemento, se compara cada uno con el valor a buscar y se detiene cuando el valor es hallado o se llega al final del arreglo.

Linear Search Programación en C++

#include<iostream> using namespace std; // Function prototype int busqueda(int[], int, int); const int SIZE = 5; int main() { int pruebas[SIZE] = {87, 75, 98, 100, 82}; int resultados; //Buscar el valor 100 dentro del arreglo resultados = busqueda(pruebas, SIZE, 100); // Si la funcion busqueda regresa el valor -1, no se hallo el valor 100 if(resultados == -1) cout << "Ud. no obtuvo 100 en ningun examen." << endl; else cout << "Ud. obtuvo 100 en la prueba #"; cout << (resultados + 1) << endl; } system("pause"); return 0; int busqueda(int list[],int numElems, int value) int index = 0; int position = -1; bool found = false; while (index < numElems && !found) if (list[index] == value) found = true; position = index; index++; return position;

Binary Search Algoritmo mucho más eficiente que la búsqueda lineal. Requiere que todos los valores en el arreglo esten previamente ordenados. Comienza a realizar la búsqueda con el elemento central, si este contiene el valor buscado, se finaliza el proceso. De lo contrario, si el valor a buscar es menor que el valor central, la búsqueda se concentra en los valores en la primera mitad del arreglo. De otra manera, se concentra en la otra mitad.

Binary Search Programación en C++

#include<iostream> using namespace std; //Function prototype int binarySearch(int[], int, int); const int SIZE = 20; int main() { int idNums[SIZE] = {101, 142, 147, 189, 199, 207, 222, 234, 289, 296, 310, 319, 388, 394, 417, 429, 447, 521, 536, 600}; int results; int empID; cout << "Enter the Employee ID you wish to search for: "; cin >> empID; results = binarySearch(idNums, SIZE, empID); if (results == -1) cout << "That number does not exist in the array. " << endl; else cout << "That ID is found at element " << results; cout << " in the array. " << endl; } system("pause"); return 0; int binarySearch(int array[], int size, int value) int first = 0, last = size -1, middle, position = -1; bool found = false; while (!found && first <= last) middle = (first + last) / 2; if (array[middle] == value) found = true; position = middle; else if (array[middle] > value) last = middle - 1; first = middle + 1; return position;

Binary Search Durante la ejecución del programa, entre como prueba el valor 199. Una vez se entre este valor, el programa “llama” a la función binarySearch definida dentro del mismo para llevar a cabo la búsqueda del dato 199 dentro del arreglo.

int binarySearch(int array[], int size, int value) { int first = 0, last = size -1, middle, position = -1; bool found = false; while (!found && first <= last) { middle = (first + last) / 2; if (array[middle] == value) found = true; position = middle; } else if (array[middle] > value) last = middle - 1; else first = middle + 1; return position; Al ejecutarse las instrucciones dentro de esta función, el valor que retornará a la función principal será 4, lo que corresponde a la posición dentro del arreglo donde ubica el dato encontrado.