Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Actividad 5 de algoritmos, Ejercicios de Algoritmos y Programación

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Tipo: Ejercicios

2022/2023

Subido el 14/05/2023

adrian-alejandro-tovar-escamilla
adrian-alejandro-tovar-escamilla 🇲🇽

5 documentos

1 / 10

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Universidad Autónoma
de Nuevo León
Facultad de Ingeniería
Mecánica y Eléctrica
ALGORITMOS
COMPUTACIONALES
Maestra: JESSICA NATALIA MARTINEZ BALDERAS
Matrícula
Estudiante
Programa Educativo
1995863
Adrián Alejandro Tovar Escamilla
ITS
Día 11 del mes de noviembre del año 2022, Guadalupe, Nuevo León
pf3
pf4
pf5
pf8
pf9
pfa

Vista previa parcial del texto

¡Descarga Actividad 5 de algoritmos y más Ejercicios en PDF de Algoritmos y Programación solo en Docsity!

Universidad Autónoma

de Nuevo León

Facultad de Ingeniería

Mecánica y Eléctrica

ALGORITMOS

COMPUTACIONALES

Maestra: JESSICA NATALIA MARTINEZ BALDERAS

Matrícula Estudiante Programa Educativo 1995863 Adrián Alejandro Tovar Escamilla ITS Día 11 del mes de noviembre del año 2022 , Guadalupe, Nuevo León

Introducción

Ordenar y buscar es uno de los temas más vitales en DSA. Almacenar y recuperar información es una de las aplicaciones más comunes de las computadoras hoy en día. Con el tiempo, la cantidad de datos e información almacenados y accedidos a través de la computadora se ha convertido en enormes bases de datos. Se han desarrollado muchas técnicas y algoritmos para mantener y procesar de manera eficiente la información en las bases de datos. El proceso de buscar un registro de datos en particular en la base de datos se denomina searching (búsqueda). El proceso de ordenar los registros en una base de datos se denomina sorting (ordenar). Ordenar y buscar juntos constituyen un área importante de estudio en métodos computacionales. Ambos son un campo de estudio muy importante en estructura de datos y algoritmos. Con mucha frecuencia los programadores trabajan con grandes cantidades de datos almacenados en arreglos y registros, y por ello será necesario determinar si un arreglo contiene un valor que coincida con un cierto valor clave. Una colección de datos (estructura) puede ser almacenada en un archivo, un array (vector o matriz), una lista enlazada o un árbol. Cuando los datos están almacenados en un array, una lista enlazada o un árbol, se denomina ordenación interna. Si los datos están almacenados en un archivo, el proceso de ordenación se llama ordenación externa.

Paso 8: Salir Algoritmo de búsqueda binaria: El algoritmo de búsqueda binaria es rápido según la complejidad del tiempo de ejecución. Este algoritmo funciona sobre la base de la regla divide y vencerás. En este algoritmo, primero tenemos que ordenar la recopilación de datos en orden ascendente y luego buscar el elemento objetivo comparando el elemento más central de la colección. Si se encuentra una coincidencia, se devuelve el índice del elemento. Si el elemento del medio es mayor que el elemento de destino, el elemento se busca en la submatriz a la izquierda del elemento del medio. De lo contrario, el elemento se busca en el subconjunto a la derecha del elemento central. Este proceso también continúa en el subconjunto hasta que el tamaño del subconjunto se reduce a cero. Algoritmo: Paso 1: La lista de datos debe estar ordenada en orden ascendente. Paso 2: sondear el medio de la lista Paso 3: si el objetivo es igual a list[mid], FOUND. Paso 4: si el objetivo < lista[medio], descarta la mitad de la lista entre lista[medio] y lista[último]. Paso 5: Si el objetivo > lista[medio], descarta la mitad de la lista entre lista[primero] y lista[medio]. Paso 6: continúe buscando en la lista abreviada hasta que se encuentre el objetivo o no haya elementos para sondear. ¿Qué es ordenar? Ordenar es el proceso de colocar elementos de una colección en algún tipo de orden. Por ejemplo, una lista de palabras podría ordenarse alfabéticamente o por longitud. La clasificación eficiente es importante para optimizar el uso de otros algoritmos que requieren listas ordenadas para funcionar correctamente. Importancia de clasificar:

  • Para representar los datos en un formato más legible.
  • Optimice la búsqueda de datos a alto nivel. Los algoritmos de clasificación más comunes son:
  • Ordenamiento de burbuja
  • Tipo de inserción
  • Clasificación de selección
  • Ordenación rápida
  • Ordenar por fusión
  • Clasificación de concha Ordenamiento de burbuja: Bubble sort es el algoritmo de clasificación más simple. Se basa en la comparación donde cada par de elementos adyacentes se compara y se intercambia si no están en orden. Funciona recorriendo repetidamente la lista para ordenarla, comparando dos elementos a la vez e intercambiándolos si están en el orden incorrecto. El paso por la lista se repite hasta que no se necesitan intercambios, lo que significa que la lista está ordenada. Este algoritmo no es adecuado para grandes conjuntos de datos. La complejidad temporal promedio y en el peor de los casos de este algoritmo es de Ο(n2) donde n es el número de elementos. Algoritmo: para i=N-1 a 2 { establecer el indicador de intercambio en falso para j=1 a i { si lista[j-1] > lista[j] intercambiar lista[j-1] y lista[j] establecer el indicador de intercambio en verdadero } si el indicador de intercambio es falso, romper. La lista está ordenada. }

Paso 2: elige el siguiente elemento Paso 3: Comparar con todos los elementos de la sublista ordenada Paso 4: Desplace todos los elementos de la sublista ordenada que sea mayor que el valor que se va a ordenar Paso 5: Inserta el valor Paso 6: Repita hasta que la lista esté ordenada Ejemplo de búsqueda lineal Tomemos un ejemplo de una matriz A[7]={5,2,1,6,3,7,8}. La matriz A tiene 7 elementos. Supongamos que estamos buscando 7 en la matriz. Elemento objetivo = 7. Aquí tenemos A[7]={5,2,1,6,3,7,8} X= Al principio, cuando i=0 (A[0]=5; X=7) no coincide i++ ahora, i=1 (A[1]=2; X=7) no coincide i++ ahora, i=2(A[2])=1; X=7) no coincide … …. i++ cuando, i=5(A[5]=7; X=7) Coincidencia encontrada Por lo tanto, Elemento X=7 encontrado en el índice 5. La búsqueda lineal rara vez se usa en la práctica. La complejidad temporal del algoritmo anterior es O(n). int linearSearch(int valores[], int target, int n) { para(int i = 0; i < n; i++) { if (valores[i] == objetivo) { devolver yo;

devolver - 1; } Ejemplo de Ordenamiento de burbuja Supongamos que tenemos una lista de arreglos de 5 elementos A[5]={40,50,30,20,10}. Tenemos que ordenar esta matriz usando el algoritmo de clasificación de burbujas. Observamos en el algoritmo que Bubble Sort compara cada par de elementos de matriz a menos que toda la matriz esté completamente ordenada en orden ascendente. Después de cada iteración, los valores más altos se establecen al final de la matriz. Por lo tanto, la siguiente iteración no necesita incluir elementos ya ordenados. void bubbleSort(int arr[], int n) { int i, j, temporal; para(i = 0; i < n; i++) { para(j = 0; j < ni-1; j++) { si (arr[j] > arr[j+1]) { // intercambiar los elementos temperatura = arreglo[j]; matriz[j] = matriz[j+1]; matriz[j+1] = temporal; } }

Bibliografía

ALGORITMOS DE BUSQUEDA Y ORDENAMIENTO. (2013, 9 diciembre). Diseño y análisis de algoritmos. https://jorgeantilefblog.wordpress.com/algoritmos-de-busqueda-y- ordenamiento/ Colaboradores de Wikipedia. (2022e, octubre 6). Algoritmo de ordenamiento. Wikipedia, la enciclopedia libre. https://es.wikipedia.org/wiki/Algoritmo_de_ordenamiento Colaboradores de Wikipedia. (2022h, noviembre 7). Algoritmo de búsqueda. Wikipedia, la enciclopedia libre. https://es.wikipedia.org/wiki/Algoritmo_de_b%C3%BAsqueda Algoritmos de ordenación y búsqueda - Estructuras de Datos en Java. (s. f.). https://sites.google.com/a/espe.edu.ec/programacion-ii/home/a1- arreglos/algoritmos-de-ordenacion-y-busqueda Singh, A. (2022, 7 junio). Sorting and Searching | Data Structure & Algorithms. Tech Blog. https://msatechnosoft.in/blog/searching-sorting-data-structure- algorithms/