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.

Slides:



Advertisements
Presentaciones similares
Introducción a C++ Sistemas Operativos
Advertisements

Método de ordenación por inserción
Ordenamiento de Arreglos
PROF. CARLOS RODRIGUEZ SANCHEZ COMP 242 Introducci Ó n a los Arreglos (arrays) en C++
Conceptos Básicos Prof. Carlos Rodríguez Sánchez
Arithmetic Operators & Operators Precedence
Ejemplo de un programa en C++ donde se manipulan archivos de datos
Introducción Programación.
Abstracción de Datos Arrays.
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++
Listas enlazadas c++ Prof. Franklin Cedeño.
LOGROS DEL PERÍODO Utiliza de forma correcta las funciones para entrada y salida de datos en c++. Utiliza los elementos básicos de un programa en c++.
Programacion de Computadora Prof. Obadiah Oghoerore.
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Tema Función main Elementos básicos del lenguaje.
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.
INFORMATICA I Arreglos 2 CLASE 18.
INFORMATICA I Funciones CLASE 13.
Prof. Franklin Cedeño. FUNCIONES EN C++ Cuando tratamos de resolver un problema, resulta muy útil utilizar la filosofía de “divide y vencerás”. Esta estrategia.
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
Cont. Arbol Binario de Búsqueda
Acciones y funciones Concepto
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.
4A4A4A4A 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.
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.
Estructuras de Control de Repetición
PRIMITIVAS DE SALIDA Curso de graficación I.
Introducción a la Computación
Sección 5-2 Estructuras de Control de Decisión Expresiones Lógicas.
ÁRBOLES BINARIOS DE BÚSQUEDA
Arreglos.
Capítulo 5. Punteros y Cadenas de Caracteres
UNIDAD V Arreglos y Cadenas
Numeric Types, Expressions, and Output
Cátedra de COMPUTACIÓN FACULTAD DE INGENIERÍA - UNA La mejor manera de aprender Programación es PROGRAMANDO !!!!!! CLASE Nro. 1.
 2003 Prentice Hall, Inc. All rights reserved. 1 Capítulo 4 - Arrays Índice del Capítulo 4.1Introducción 4.2Arrays 4.3Declaración de Arrays 4.4Ejemplos.
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
Búsqueda. Búsqueda Secuencial Es el método de búsqueda más sencillo En un arreglo o lista ligada consiste en ir visitando cada uno de sus elementos y.
Algoritmos de búsqueda
BUSQUEDA SECUENCIAL Consiste en revisar elemento tras elemento hasta encontrar el dato buscado, o llegar al final del conjunto de datos disponibles. La.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 2- 1.
Programación Orientada a Objetos
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.
Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad.
Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
Eficiencia en uso de recursos y memoria
Algoritmo.
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.
Lenguaje de Programación II PLAN DE EVALUACIÓN CONTENIDO MODALIDAD DE EVAL. PONDERACIÓN INTRODUCCIÓN BÁSICA AL LENGUAJE DE PROGRAMACIÓN.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
UNIVERSIDAD DIEGO PORTALES Facultad de Ingeniería Programación Avanzada HERENCIA Tema: HERENCIA Ing. Javier Chamorro Cerón.
PRUEBA.
IntroducciÓn a los Arreglos (“arrays”) en C++
Lenguaje C++ Problemas.
Ordenamiento de Arreglos
Searching data in Arrays
Arreglos en C++ (una y dos dimensiones)
++
Dfsfdsfs sfdsdfsf. prueba dfdsffss Prueba 3.
Registros tipo struct PROGRAMACIÓN MODULAR.
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.,
Prueba.
Transcripción de la presentación:

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 cuando el valor es hallado o se llega al final del arreglo.

Linear Search Programación en C++

#include 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 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; else 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.