Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se...
-
Upload
clara-rocio-mora-salinas -
Category
Documents
-
view
223 -
download
0
Transcript of Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se...
![Page 1: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/1.jpg)
Arreglos
Otoño 2014
![Page 2: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/2.jpg)
Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La propiedad indexado significa que el elemento primero, segundo, hasta el n-ésimo de un arreglo pueden ser identificados por su posición ordinal. Un arreglo es una colección finita, homogénea y ordenada de elementos del mismo tipo.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 2
![Page 3: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/3.jpg)
De manera formal se define un arreglo de tamaño n de los elementos de tipo A, es un elemento del espacio n-dimensional del conjunto A, es decir, X es arreglo de tamaño n del tipo A si y solo si XAn.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 3
![Page 4: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/4.jpg)
Ambas definiciones reconocen los siguientes conceptos:◦ Finita: Todo arreglo tiene un límite, es decir,
debe determinarse cual será el número máximo de elementos que podrán formar parte de él.
◦ Homogénea: Todos los elementos de un arreglo son del mismo tipo o naturaleza (todos enteros, booleanos, etc,), pero nunca una combinación de distintos tipos.
◦ Ordenada: Se debe determinar cuál es el 1er. elemento, el 2º, el 3º ... y el n-ésimo elemento.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 4
![Page 5: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/5.jpg)
Tienen un único nombre de variable, que representa todos los elementos.
Contienen un índice, los cuales diferencian a cada elemento del arreglo.
Se pueden realizar ciertas operaciones como son: recorridos, ordenaciones y búsquedas de elementos.
El número total de elementos del arreglo (NTE) es igual al límite superior (LS), menos límite inferior NTE = LS - LI + 1.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 5
![Page 6: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/6.jpg)
El tipo de índice puede ser cualquier tipo ordinal.El tipo de los componentes puede ser cualquiera.Se utilizan [ ] para indicar el índice de un arreglo. Entre los [ ] se debe escribir un valor ordinal (puede ser una variable, una constante o una expresión que dé como resultado un valor ordinal).Si un arreglo tiene n componentes, la última localidad está dada por n.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 6
![Page 7: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/7.jpg)
Los arreglos pueden contener un mínimo de cero elementos hasta un máximo de n elementos.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 7
1 n
n elementos
![Page 8: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/8.jpg)
A continuación se muestra un arreglo llamado EDADES, que contiene las edades de la clase de natación en la BUAP.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 8
21 17 19 18 20 21 20 25 21 23
EDADES[2]
EDADES[1] EDADES[3]
EDADES[4]
EDADES[5]EDADES[6] EDADES[8]
EDADES[7] EDADES[9]
EDADES[10]
EDADESLímite inferiorLímite superior
![Page 9: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/9.jpg)
Los arreglos se clasifican en:
◦Unidimensionales (Vectores): un sólo índice
◦Bidimensionales (Tablas o Matrices): dos
índices
◦Multidimensionales: más de dos índices
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 9
![Page 10: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/10.jpg)
Arreglos unidimensionales
Otoño 2014
![Page 11: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/11.jpg)
Los arreglos unidimensionales deben cumplir lo siguiente: ◦ Compuesto por un número de elementos finito.◦ Tamaño fijo: el tamaño debe ser conocido en
tiempo de compilación. ◦ Homogéneo: todos los elementos son del mismo
tipo.◦ Son almacenados en posiciones contiguas de
memoria, cada uno de los cuales se les puede acceder directamente.
◦ Cada elemento se puede procesar como si fuese una variable simple ocupando una posición de memoria.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 11
![Page 12: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/12.jpg)
Dado un arreglo unidimensional denominado PRECIO cada uno de sus elementos se designará por ese mismo nombre diferenciándose únicamente por su correspondiente subíndice.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 12
15.4
12.5
14.8
9.7
6.5
4.5
PRECIO[1]
PRECIO[2]
PRECIO[3]
PRECIO[4]
PRECIO[5]
PRECIO[6]
Longitud = 6
PRECIO Nombre del arreglo
Índices
![Page 13: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/13.jpg)
Asignación◦ En general no es posible asignar directamente
un valor a todo el arreglo, sino que se debe asignar el valor deseado a cada elemento.
◦ Para asignar un valor en cada elemento del arreglo se efectúa con un subíndice que indica la posición, se puede utilizar la siguiente forma:
<NombreVector>[subíndice] <Valor> Ejemplo:
◦ A[1] 10◦ PAIS[2] “Francia”◦ PRECIO[3] PRECIO[2]+10.5
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 13
![Page 14: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/14.jpg)
Lectura: Consiste en leer un valor de cada elemento del arreglo y asignarlo a una variable.
Para i 1 hasta N paso 1 hacer leer(ARREGLO[i])Finpara
Escritura: Consiste en asignarle un valor a cada elemento del arreglo.
Para i 1 hasta N paso 1 hacer escribir(ARREGLO[i])Finpara
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 14
![Page 15: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/15.jpg)
Leer un arreglo de N precios y obtener el promedio:1. Inicio2. Leer(n)3. prom 04. Para i1 hasta n paso 1 hacer
leer(precio[i])promprom+precio[i]
5. Finpara6. promprom/n7. Escribir(“El promedio es:”,prom)8. Fin
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 15
![Page 16: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/16.jpg)
Cadenas
Otoño 2014
![Page 17: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/17.jpg)
Una cadena es un conjunto de caracteres incluido el espacio en blanco.
Por ejemplo:◦“Hola”◦“123vb”◦“v bg%.”
Generalmente una cadena va encerrada entre comillas.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 17
![Page 18: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/18.jpg)
La longitud de una cadena es el número de caracteres que contiene.
La cadena vacía es la que no tiene ningún carácter y se representa como “”.
Una constante de tipo cadena es un conjunto de caracteres válidos encerrados entre comillas, por ejemplo:◦“numero1”◦“&/ #$%”
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 18
![Page 19: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/19.jpg)
Una variable de cadena es aquella cuyo contenido es una cadena de caracteres, por ejemplo:◦cadena=“una cadena”◦str=“-23.56”.
El último carácter de la cadena marca el fin de la cadena, en este caso utilizaremos el carácter ‘\0’ para denotar fin de cadena.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 19
![Page 20: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/20.jpg)
• Asignación.– Apellido”Juarez”
• Entrada/ Salida– Leer (nombre, estado_civil)– Escribir (nombre, apellido)
• Para el cálculo de la longitud de una cadena se da el número de caracteres que hay en una.
• Para la comparación de cadenas se comparan caracteres o para ver si son iguales o no.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 20
![Page 21: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/21.jpg)
La concatenación se define como la unión de varias cadenas de caracteres en una sola, conservando el orden.
La extracción de subcadenas es una subcadena que es una porción de la cadena original.
La búsqueda de información, consiste en buscar una subcadena o cadena dentro de otra mayor. Devuelve el número de la posición donde inicia la subcadena buscada, o -1 si no la encuentra.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 21
![Page 22: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/22.jpg)
Encontrar el punto medio, este nos devuelve la mitad de la posición de la cadena.
Truncar cadenas, se pretende quedarse con los primeros n caracteres de la cadena.
Convertir cadenas a números o viceversa, si los caracteres son dígitos.
Insertar una cadena dentro de otra. Borrar cadenas. Sustituir una cadena por otra. Invertir el orden de una cadena.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 22
![Page 23: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/23.jpg)
El siguiente algoritmo sustituye las ‘e’ por ‘*’.
1. Inicio2. Escribir (“Escriba una palabra”)3. Leer (str)4. Para i1 hasta len(str) paso 1 hacer
4.1 Si (str[i] = ‘e’) entoncesstr[i] ‘*’
4.2 Finsi5. Finpara6. Escribir (str)7. Fin
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 23
![Page 24: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/24.jpg)
El siguiente algoritmo imprime una cadena de manera invertida: 1.Inicio2.Leer (str)3.Para ilen(str) hasta 1 paso -1 hacer
3.1 Escribir (str[i])4.Finpara5.Fin
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 24
![Page 25: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/25.jpg)
El siguiente algoritmo realiza lo siguiente, dada una cadena en minúsculas, la convierte en mayúsculas1. Inicio2. Leer (str)3. Para i1 hasta len(str) paso 1 hacer
4.1 Si (‘a’<=str[i]<=‘z’) entoncesValor(str[i]) Valor(str[i])-32
4.2 Finsi4. Finpara5. Escribir (“La cadena es:”,str)6. Fin
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 25
![Page 26: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/26.jpg)
Ordenamiento
Otoño 2014
![Page 27: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/27.jpg)
Uno de los métodos de clasificación más simples que puede haber es el llamado “clasificación de burbuja” (bubblesort).La idea básica de este algoritmo es imaginar que los elementos están como burbujas en un tanque de agua con pesos correspondientes a sus claves, cada pase sobre el arreglo produce el ascenso de una burbuja hasta su nivel adecuado de peso.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 27
![Page 28: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/28.jpg)
Procedimiento burbuja1. Inicio2. Para i 1 a n-1 paso 1 hacer
2.1Para j n a i+1 paso -1 hacerSi (A[j] < A[j-1]) entonces
temp A[j] // intercambioA[j] A[j-1]A[j-1] temp
Finsi2.2 Finpara
3. Finpara4. Fin
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 28
![Page 29: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/29.jpg)
Este algoritmo admite un poco de mejoramiento.
El algoritmo por vibración es una variante del algoritmo burbuja pero mejorado.
Este algoritmo consiste en “recordar” cuál fue el último intercambio realizado y en qué momento.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 29
![Page 30: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/30.jpg)
Procedimiento shakeSort1.Inicio2.l2 r n k n3.Repetir 3.1 Para jr a l paso -1 hacer
Si (A[j-1] > A[j]) entonces temp A[j] A[j] A[j-1] A[j-1] temp k j
Finsi 3.2Finpara 3.3 l k+1
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 30
3.4 Para j l a r paso 1hacer Si (A[j-1]>A[j]) entonces
temp A[j]A[j] A[j-1]A[j-1]
tempk j
Finsi3.5 Finpara3.6 r k-1
4. Hasta (l > r)5. Fin
![Page 31: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/31.jpg)
Este método consiste en reubicar en el lugar correcto cada uno de los elementos a ordenar, es decir, en el i-ésimo recorrido se “inserta” el i-ésimo elemento A[i] en el lugar correcto, entre A[1], A[2], ..., A[i-1], los cuales fueron ordenados previamente.
Existen dos condiciones distintas que podrían dar terminado el proceso de clasificación:1. Se encuentra un elemento A[j] que tiene una
llave menor que la de A[i].2. El extremo izquierdo de la secuencia destino
es alcanzado.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 31
![Page 32: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/32.jpg)
Procedimiento insercionDirecta1. Inicio2. Para i 2 a n paso 1 hacer
2.1 A[0]A[i] j i2.2 Mientras (A[j] < A[j-1]) hacer
temp A[j]A[j] A[j-1]A[j-1] tempj j-1
2.3 Finmientras3. Finpara4. Fin
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 32
![Page 33: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/33.jpg)
Si notamos que la secuencia destino A[2]...A[i-1] donde se debe insertar el elemento, ya está ordenada.Este algoritmo puede ser mejorado determinando rápidamente el punto de inserción.La elección es una búsqueda binaria que prueba la secuencia destino en la mitad y continúa buscando hasta encontrar el punto de inserción.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 33
![Page 34: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/34.jpg)
Procedimiento insercionBinaria1. Inicio2. Para i 2 a n paso 1 hacer
2.1 x A[i] L1 Ri2.2 Mientras (L < R) hacer
m (L+R) div 2 Si (A[m] <= x) entonces L L+1 Sino R m Finsi
2.3 Finmientras2.4 Para ji a R+1 paso -1 hacer
A[j] A[j-1]2.5 Finpara2.6 A[R] x
3. Finpara4. Fin
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 34
![Page 35: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/35.jpg)
Este método se basa en los siguientes principios:
1. Seleccionar el elemento que tenga la llave menor.
2. Intercambiarlo con el primer elemento 1.3. Repetir después estas operaciones con los
n-1 elementos restantes, luego con n-2 elementos hasta que no quede más que un elemento (el más grande).
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 35
![Page 36: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/36.jpg)
Procedimiento selecciónDirecta1. Inicio2. Para i1 a n-1 paso 1 hacer
2.1 k i xA[i]2.2 Para j i+1 a n paso 1hacer
Si (A[j] < x) entonces k j x A[k]finsi
2.3 finpara2.4 A[k] A[i] A[i] x
3. finpara4. Fin
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 36
![Page 37: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/37.jpg)
Inserción por decremento decreciente
◦Un refinamiento de la inserción directa fue propuesto por D.L. Shell en 1959.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 37
![Page 38: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/38.jpg)
Procedimiento shellSort1. Inicio2. h[1]9 h[2]5 h[3] 3 h[4] 13. Para m 1 a t paso 1 hacer // t es el tamaño del arreglo h
3.1 k h[m] sk3.2 Para i k+1 a n paso 1hacer
xA[i] ji-kSi (s=0) entonces skfinsiss+1 A[s]xMientras (x<A[j]) hacerA[j+k]A[j] jj-kfinmientrasA[j+k]x
3.3 finpara4. Fin_para5. Fin
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 38
![Page 39: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/39.jpg)
Búsqueda
Otoño 2014
![Page 40: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/40.jpg)
La tarea de búsqueda es una de las más frecuentes en programación.Para los siguientes algoritmos vamos a suponer que la colección de los datos en donde vamos a buscar, es fija, y que es de tamaño n.La tarea consiste en hallar un elemento cuya clave sea igual al argumento de búsqueda.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 40
![Page 41: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/41.jpg)
Cuando los elementos no llevan un orden y no existe información sobre ellos se utiliza la búsqueda lineal, es decir, comparar uno a uno los elementos hasta encontrar el deseado.
Existen dos condiciones que ponen fin a la búsqueda. ◦Se encuentra el elemento.◦Se ha rastreado toda la colección y no se
encuentra el elemento.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 41
![Page 42: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/42.jpg)
Procedimiento busquedaLineal (elemento)1. Inicio2. i13. Mientras (i <= N) y (A[i] <> elemento) hacer
3. 1 ii+14. Finmientras5. Fin
Si i al final es N entonces el elemento no fue encontrado, pero sino entonces quiere decir que el elemento esta en la posición i-ésima del arreglo.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 42
![Page 43: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/43.jpg)
Para utilizar este algoritmo es necesario que la colección este ordenada.
La idea clave consiste en inspeccionar el elemento medio (m) y compararlo con el elemento de búsqueda x.◦ Si es igual a x, la búsqueda termina; si es menor
que x, inferimos que todos los elementos con índices menores que o iguales a m pueden ser eliminados, y nuestra búsqueda ahora se centra en los demás elementos.
◦ Esto se repite mientras el índice inicial sea menor o igual que el final y el elemento no sea encontrado.
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 43
![Page 44: Arreglos Otoño 2014. Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.](https://reader035.fdocuments.mx/reader035/viewer/2022081513/5665b48f1a28abb57c923267/html5/thumbnails/44.jpg)
Procedimiento busquedaBinaria(x)1. Inicio2. L 03. RN 4. found false5. Mientras (L< R) y not (found) hacer
5.1 m(L+R) div 25.2 Si (A[m]=x) entonces foundtrue5.3 Sino
Si (A[m] < x entonces) L m+1Sino R mfinsi
5.4 fin_si6. Finmientras7. Fin
FCC - BUAP Otoño 2014MC Beatriz Beltrán Martínez 44