Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ARREGLOS
Docente: Bachiller:
• De una dimensión.
• De dos dimensiones.
• De tres o más dimensiones.
• Unidimensionales
• Multidimensionales
Las limitaciones que tienen los arreglos respecto de las listas son
compensadas por la cantidad de operaciones convenientes que permiten
realizar sobre ellos.
Las operaciones aritméticas entre arreglos se aplican elemento a elemento:
>>> a + b
>>> a * b
>>> a - b
>>> a
>>> 0.1 * a
>>> a - 9.0
>>> a < b
>>> a == c
True
>>> any(a == b)
False
>>> all(a == c)
True
Métodos de ordenamiento
9, 8, 0, 2, 5, 1, 3, 2, 9
- El proceso continua hasta que cada elemento del vector ha sido comparado
con sus elementos adyacentes y se han realizado los intercambios necesarios.
/*Ordenamiento Burbuja */
#include <stdio.h>
#include <conio.h>
#define TAM 9
int main()
{
int a[TAM] = { 9, 8, 0, 2, 5, 1, 3, 2, 9};
int i, pasada, aux;
5 14 24 39 43 65 84 45
Para insertar el elemento 45, habrá que insertar entre 43 y 65, lo que supone
desplazar a la derecha todos aquellos números de valor superior a 45, es decir,
saltar sobre 65 y 84.
5 14 24 39 43 65 84 45
// Inicialización de variables
1. elem_div = lista[sup];
2. i = inf - 1;
3. j = sup;
4. cont = 1;
// Clasificamos la sublista
7. while (cont)
8. while (lista[++i] < elem_div);
9. while (lista[--j] > elem_div);
10. if (i < j)
11. temp = lista[i];
12. lista[i] = lista[j];
13. lista[j] = temp;
14. else
15. cont = 0;
// Aplicamos la función
19. OrdRap (lista, inf, i - 1);
20. OrdRap (lista, i + 1, sup);
do {
// se hace la partición del arreglo
while (array[i]<p) i++;
while (p<array[j]) j--;
if (i<=j) {
Métodos de búsqueda
• Búsqueda secuencial
Este algoritmo compara uno a uno los elementos del arreglo hasta recorrerlo
por completo indicando si el número buscado existe.
Su implementación es la siguiente:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define TAM 10
void main() {
int a[TAM], temp, i, j, num;
• Búsqueda binaria
Este algoritmo permite buscar de una manera más eficiente un dato dentro
de un arreglo, para hacer esto se determina el elemento central del arreglo y se
compara con el valor que se esta buscando, si coincide termina la búsqueda y
en caso de no ser así se determina si el dato es mayor o menor que el elemento
central, de esta forma se elimina una mitad del arreglo junto con el elemento
central para repetir el proceso hasta encontrarlo o tener solo un elemento en el
arreglo.
Para poder aplicar este algoritmo se requiere que el arreglo este ordenado.
Su implementación es la siguiente:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define TAM 15
void main(){
int a[TAM], busca, temp, bajo, alto, central;
bajo = 0;
alto = TAM-1;
central = (bajo+alto)/2;
while (bajo < alto && busca != a[central]){
if(busca > a[central])
bajo = central+1;
else
alto = central-1;
central=(bajo+alto)/2;
}
if (busca == a[central])
printf("\n%d encontrado en posicion %d", busca, central);
else
printf("\n%d no existe", busca);
printf ("\n\nEl arreglo ordenado era\n\n");
for (i=0; i< TAM; i++)
printf ("%d ", a[i]);
getch();
}