SlideShare una empresa de Scribd logo
1 de 6
Descargar para leer sin conexión
TIPOS DE DATOS: ARREGLOS
1. DEFINICION
Es un conjunto de datos que se almacenan en memoria de manera contigua con el mismo
nombre. Para diferenciar los elementos de un arreglo se utilizan índices detrás del nombre del
arreglo y encerrados por []. El elemento 5° (quinto) de un arreglo, es representado por el índice
[4], ya que los índices comienzan en 0. Esto significa que un arreglo de 10 elementos tendría los
índice del 0 al 9: [0...9]
Un arreglo es un grupo de ubicaciones de memoria consecutivos, todas ellas del mismo
tipo. Para hacer referencia a una ubicación o elemento especifico en el arreglo, específicamente
su nombre y el número de posición del elemento especifico en el arreglo.
El número de posición se le conoce como el índice o subíndice, el primer elemento en
todo arreglo tiene el subíndice 0 y se conoce algunas veces cono elemento cero.
2. TIPOS DE ARREGLOS
a) Arreglos unidimensionales: vectores
El tipo más simple de arreglo es el arreglo unidimensional o vector. Un vector de una dimensión
denominado NOTAS que consta de n elementos. El subíndice o índice de un elemento [1, 2, 3,
i…, n] designa su posición en la ordenación del vector.
Para hacer referencia a un elemento del vector se usa el nombre del mismo, seguido del
índice (entre corchetes), el cual indica una posición en particular del vector.
Por ejemplo:
V[x], Donde: V = Nombre del arreglo
X = Numero de datos que constituyen el arreglo (tamaño).
b) Arreglos bidimensionales: matrices
Un arreglo bidimensional se puede considerar como un vector de vectores. Es un
conjunto de elementos, todos del mismo tipo, en el cual el orden de los componentes es
significativo y en el que se necesitan especificar dos subíndices para poder identificar cada
elemento del arreglo.
Un arreglo bidimensional se dice que tiene M*N elementos, donde M es el número de
filas y N el número de columnas.
c) Arreglos multimensionales
Un arreglo se puede definir de tres, cuatro y hasta n dimensiones. Se manejan los mismos
conceptos para los subíndices que en los vectores o matrices. Cada elemento del arreglo se puede
identificar usando la cantidad de subíndices necesarios, por ejemplo en un arreglo de n
dimensiones se escribirá: A [I1, I2, I3,…, In]
Es un tipo de dato estructurado, que está compuesto por dimensiones. Para hacer
referencia a cada componente del arreglo es necesario utilizar n índices, uno para cada
dimensión. El término dimensión representa el número de índices utilizados para referirse a un
elemento particular en el arreglo. Los arreglos de más de una dimensión se llaman arreglos
multidimensionales.
Ejemplo: Un arreglo de tres dimensiones puede ser uno que contenga los datos relativos
al número de estudiantes de una universidad de acuerdo a los siguientes criterios:
 Año (primero a quinto)
 Sexo (femenino/masculino)
 Facultad (cinco facultades diferentes)
d) Arreglos con múltiple subíndices
Es la representación de tablas de valores, consistiendo de información arreglada en renglones y
columnas. Para identificar un elemento particular de la tabla, deberemos de especificar dos
subíndices; el primero identifica el renglón del elemento y el segundo identifica la columna del
elemento. A los arreglos que requieren dos subíndices para identificar un elemento en particular
se conocen como arreglo de doble subíndice. Note que los arreglos de múltiples subíndices
pueden tener más de dos subíndices. El estándar ANSI indica que un sistema ANSI C debe
soportar por lo menos 12 subíndices de arreglo.
3. OPERACIONES CON ARREGLOS
Las operaciones en arreglos pueden clasificarse de la siguiente forma:
a) Lectura
Este proceso consiste en leer un dato de un arreglo y asignar un valor a cada uno de sus
componentes. La lectura se realiza de la siguiente manera:
Para i desde 1 hasta N haz x < arreglo[i]
b) Escritura
Consiste en asignarle un valor a cada elemento del arreglo. La escritura se realiza de la
siguiente manera:
Para i desde 1 hasta N haz arreglo[i] < x
c) Asignación
No es posible asignar directamente un valor a todo el arreglo, por lo que se realiza de la
manera siguiente:
Para i desde 1 hasta N haz arreglo[i] < algún_ valor
d) Actualización
Dentro de esta operación se encuentran las operaciones de eliminar, insertar y modificar
datos. Para realizar este tipo de operaciones se debe tomar en cuenta si el arreglo esto o no
ordenado.
e) Búsqueda
La búsqueda consiste en encontrar un determinado valor dentro de un conjunto de datos,
para recuperar alguna información asociada con el valor buscado.
Existen diferentes formas de realizar esta operación; en otras palabras hay distintos
métodos o técnicas para realizar búsqueda en vectores.
• Búsqueda secuencial o lineal
• Búsqueda Binaria
• Búsqueda Hash
• Arboles de búsqueda
f) Inserción
Esta operación consiste en adicionar un nuevo elemento al arreglo. Se debe tener en
cuenta:
• Que no sobrepase el tamaño máximo declarado para el vector.
• La operación puede darse para un arreglo ordenado o desordenado.
• Si el arreglo está desordenado, se incrementa en uno el número de elementos y en esa
posición N + 1 se inserta el nuevo elemento, si el arreglo está ordenado hay que buscar el
lugar dentro del arreglo donde se debe inserta el nuevo valor para que continúe el vector
ordenado.
• Correr todos los elementos del vector una posición a la derecha, para abrirle espacio al
nuevo elemento, a partir del lugar donde debe insertarse el nuevo dato.
• Insertar el nuevo elemento del vector en el espacio que le corresponde.
g) Eliminación
Consiste en eliminar un elemento del arreglo, puede darse cuando el arreglo está
desordenado u ordenado. El proceso de eliminación sigue los pasos que se describen a
continuación:
• Verificar que el arreglo no esté vacío.
• Buscar la posición donde se encuentra el elemento a borrar.
• Correr los elementos una posición a la izquierda, a partir de la posición siguiente donde
se encuentra el valor a borrar.
• Disminuir el número de elementos del vector en uno.
• Enviar un mensaje en caso de que el elemento a borrar no esté dentro del arreglo.
4. ALGORITMOS DE BUSQUEDA
Con frecuencia el programador trabajara con grandes cantidades de información
almacenada en arreglos. Podría ser necesario determinar si algún arreglo contiene un valor que
sea igual a cierto valor clave.
El proceso para encontrar un elemento particular en un arreglo se llama búsqueda.
Estudiaremos dos técnicas de búsqueda: una técnica simple llamada búsqueda lineal y una más
eficiente llamada búsqueda binaria. Ambos programas se pueden implementar recursivamente o
no.
 Búsqueda lineal o secuencial
La búsqueda secuencial o lineal busca un elemento de una lista utilizando un valor
destino llamado clave. En una búsqueda secuencial (a veces llamada búsqueda lineal), los
elementos de una lista o vector se exploran (se examinan) en secuencia, uno después de otro. La
búsqueda secuencial es necesaria, por ejemplo, si se desea encontrar la persona cuyo número de
teléfono es 958-220000 en un directorio o listado telefónico de su ciudad. Los directorios de
teléfonos están organizados alfabéticamente por el nombre del abonado en lugar de por números
de teléfono, de modo que deben explorarse todos los números, uno después de otro, esperando
encontrar el número 958-220000.
El algoritmo de búsqueda secuencial compara cada elemento del arreglo con la clave de
búsqueda. Dado que el arreglo no está en un orden prefijado, es probable que el elemento a
buscar pueda ser el primer elemento, el último elemento o cualquier otro. De promedio, al menos
el programa tendrá que comparar la clave de búsqueda con la mitad de los elementos del arreglo.
El método de búsqueda lineal funcionará bien con arreglos pequeños o no ordenados. La
eficiencia de la búsqueda secuencial es pobre, tiene complejidad lineal, O(n).
En síntesis la búsqueda lineal compara los elementos del arreglo con la clave de búsqueda
hasta que encuentra el elemento o bien hasta que se determina que no se encuentra.
int busqueda lineal (int A[], int clave, int n)
{
for (int i=0;i<n;i++)
if (A[i]==clave) return i;
return -1;
}
Este método funciona bien con arreglos pequeños y con los no ordenados. En arreglos
grandes u ordenados conviene aplicar la búsqueda binaria que es más eficiente.
 Búsqueda binaria
Dados un entero X y un arreglo A de n enteros que se encuentran ordenados y en
memoria, encontrar un i talque A[i] == X o retornar 0 si X no se encuentra en el arreglo
(consideramos los elementos del arreglo de 1 a N. La estrategia consiste en comparar X con el
elemento del medio del arreglo, si es igual entonces encontramos el elemento, sino, cuando X es
menor que el elemento del medio aplicamos la misma estrategia al array a la izquierda del
elemento del medio y si X es mayor que el elemento del medio aplicamos la misma estrategia al
array a la derecha de dicho elemento.
Para simplificar el c´odigo definimos A[0]=X.
int busqueda binaria(int A[],int X,int n)
{
int izq=1,medio,der=n;
A[0]=X;
do
{
medio = (izq+der) / 2;
if (izq > der)
medio=0;
else if A[medio] < X
izq = medio +1;
else der = medio-1;
}
while (A[medio] != X);
return medio;
}
En síntesis las condiciones que debe cumplir el arreglo para poder usar búsqueda binaria son
que el arreglo este ordenado y que se conozca el número de elementos. La búsqueda termina
cuando encontramos el elemento o cuando el tamaño del arreglo a examinar sea cero.
También están estos otros algoritmos de búsqueda:
 Búsquedas en Arreglos: Una búsqueda es el proceso mediante el cual podemos localizar
un elemento con un valor específico dentro de un conjunto de datos. Terminamos con
éxito la búsqueda cuando el elemento es encontrado.
 Búsqueda por hash: La idea principal de este método consiste en aplicar una función
que traduce el valor del elemento buscado en un rango de direcciones relativas. Una
desventaja importante de este método es que puede ocasionar colisiones.
BIBLIOGRAFÍA
 Carrillo, A. G. (2006). Fundamentos de Programación en C++. Delta Publicaciones.
 Aguilar, J., García, L., Martínez, L. Z., Joyanes, I., & Zahonero, I. (2007). Estructura de
datos en C#. McGraw-Hill.
 Badía, J. M., Martínez, G., & Murgui, J. Tipos y estructuras básicas.
 Deitel, H. M., & Deitel, P. J. (2003). Como programar en C. Pearson educación.

Más contenido relacionado

La actualidad más candente

Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos Simeon Bordones
 
Arreglos vectores pseint
Arreglos vectores pseintArreglos vectores pseint
Arreglos vectores pseintHEIVER CUESTA
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesAngel Vázquez Patiño
 
Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura linealesEnrique2194
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamientodeff000001
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..NANO-06
 
Informe de arreglos en PseInt
Informe de arreglos en PseInt Informe de arreglos en PseInt
Informe de arreglos en PseInt Chad Bridge
 
Arreglos o dimensiones en pseint
Arreglos o dimensiones en pseintArreglos o dimensiones en pseint
Arreglos o dimensiones en pseintDon Augusto
 
Insercion directa
Insercion directaInsercion directa
Insercion directaabelpit2
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discretaJunior Soto
 

La actualidad más candente (20)

Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
arreglos.ppt
arreglos.pptarreglos.ppt
arreglos.ppt
 
Arreglos vectores pseint
Arreglos vectores pseintArreglos vectores pseint
Arreglos vectores pseint
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura lineales
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
OPERADORES PARA C++
OPERADORES PARA C++OPERADORES PARA C++
OPERADORES PARA C++
 
Informe de arreglos en PseInt
Informe de arreglos en PseInt Informe de arreglos en PseInt
Informe de arreglos en PseInt
 
Arreglos o dimensiones en pseint
Arreglos o dimensiones en pseintArreglos o dimensiones en pseint
Arreglos o dimensiones en pseint
 
Ordenamiento shell
Ordenamiento shellOrdenamiento shell
Ordenamiento shell
 
Insercion directa
Insercion directaInsercion directa
Insercion directa
 
Tutorial PSEINT
Tutorial PSEINT Tutorial PSEINT
Tutorial PSEINT
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
 

Similar a Arreglos programacion

Clasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptxClasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptxRam Vazquez
 
Arreglos
ArreglosArreglos
Arregloslichic
 
Revista digital vectores y matrices
Revista digital vectores y matricesRevista digital vectores y matrices
Revista digital vectores y matricesflaquita_dany
 
Exposicion Arreglos
Exposicion ArreglosExposicion Arreglos
Exposicion Arreglostacubomx
 
Expocicion de Arreglos
Expocicion de ArreglosExpocicion de Arreglos
Expocicion de Arreglostacubomx
 
Angela y vicky I-B
Angela y vicky I-BAngela y vicky I-B
Angela y vicky I-BvictoriaRJ
 
Universidad politécnica amazónica arreglos
Universidad politécnica amazónica arreglosUniversidad politécnica amazónica arreglos
Universidad politécnica amazónica arreglosSuGely Gálvez
 
Estructuras de Datos Elementos y Arreglos.ppt
Estructuras de Datos Elementos y Arreglos.pptEstructuras de Datos Elementos y Arreglos.ppt
Estructuras de Datos Elementos y Arreglos.pptAndersonHernandezara
 
Vectores - Informática
Vectores - InformáticaVectores - Informática
Vectores - Informáticacompumet sac
 

Similar a Arreglos programacion (20)

Arreglos en c++2020
Arreglos en c++2020Arreglos en c++2020
Arreglos en c++2020
 
Clasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptxClasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptx
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
Daniel lugoalgoritmica
Daniel lugoalgoritmicaDaniel lugoalgoritmica
Daniel lugoalgoritmica
 
Arreglos
ArreglosArreglos
Arreglos
 
Revista digital vectores y matrices
Revista digital vectores y matricesRevista digital vectores y matrices
Revista digital vectores y matrices
 
Arreglos C++
Arreglos C++Arreglos C++
Arreglos C++
 
Arreglos enitmar
Arreglos enitmarArreglos enitmar
Arreglos enitmar
 
Exposicion Arreglos
Exposicion ArreglosExposicion Arreglos
Exposicion Arreglos
 
Expocicion de Arreglos
Expocicion de ArreglosExpocicion de Arreglos
Expocicion de Arreglos
 
Array o arreglos
Array o arreglos Array o arreglos
Array o arreglos
 
Arreglos
ArreglosArreglos
Arreglos
 
Arrayoareglos
ArrayoareglosArrayoareglos
Arrayoareglos
 
Angela y vicky I-B
Angela y vicky I-BAngela y vicky I-B
Angela y vicky I-B
 
Universidad politécnica amazónica arreglos
Universidad politécnica amazónica arreglosUniversidad politécnica amazónica arreglos
Universidad politécnica amazónica arreglos
 
Los arreglos crisbet
Los arreglos crisbetLos arreglos crisbet
Los arreglos crisbet
 
Presentación Arreglos
Presentación ArreglosPresentación Arreglos
Presentación Arreglos
 
Estructuras de Datos Elementos y Arreglos.ppt
Estructuras de Datos Elementos y Arreglos.pptEstructuras de Datos Elementos y Arreglos.ppt
Estructuras de Datos Elementos y Arreglos.ppt
 
Vectores - Informática
Vectores - InformáticaVectores - Informática
Vectores - Informática
 

Arreglos programacion

  • 1. TIPOS DE DATOS: ARREGLOS 1. DEFINICION Es un conjunto de datos que se almacenan en memoria de manera contigua con el mismo nombre. Para diferenciar los elementos de un arreglo se utilizan índices detrás del nombre del arreglo y encerrados por []. El elemento 5° (quinto) de un arreglo, es representado por el índice [4], ya que los índices comienzan en 0. Esto significa que un arreglo de 10 elementos tendría los índice del 0 al 9: [0...9] Un arreglo es un grupo de ubicaciones de memoria consecutivos, todas ellas del mismo tipo. Para hacer referencia a una ubicación o elemento especifico en el arreglo, específicamente su nombre y el número de posición del elemento especifico en el arreglo. El número de posición se le conoce como el índice o subíndice, el primer elemento en todo arreglo tiene el subíndice 0 y se conoce algunas veces cono elemento cero. 2. TIPOS DE ARREGLOS a) Arreglos unidimensionales: vectores
  • 2. El tipo más simple de arreglo es el arreglo unidimensional o vector. Un vector de una dimensión denominado NOTAS que consta de n elementos. El subíndice o índice de un elemento [1, 2, 3, i…, n] designa su posición en la ordenación del vector. Para hacer referencia a un elemento del vector se usa el nombre del mismo, seguido del índice (entre corchetes), el cual indica una posición en particular del vector. Por ejemplo: V[x], Donde: V = Nombre del arreglo X = Numero de datos que constituyen el arreglo (tamaño). b) Arreglos bidimensionales: matrices Un arreglo bidimensional se puede considerar como un vector de vectores. Es un conjunto de elementos, todos del mismo tipo, en el cual el orden de los componentes es significativo y en el que se necesitan especificar dos subíndices para poder identificar cada elemento del arreglo. Un arreglo bidimensional se dice que tiene M*N elementos, donde M es el número de filas y N el número de columnas. c) Arreglos multimensionales Un arreglo se puede definir de tres, cuatro y hasta n dimensiones. Se manejan los mismos conceptos para los subíndices que en los vectores o matrices. Cada elemento del arreglo se puede identificar usando la cantidad de subíndices necesarios, por ejemplo en un arreglo de n dimensiones se escribirá: A [I1, I2, I3,…, In] Es un tipo de dato estructurado, que está compuesto por dimensiones. Para hacer referencia a cada componente del arreglo es necesario utilizar n índices, uno para cada dimensión. El término dimensión representa el número de índices utilizados para referirse a un elemento particular en el arreglo. Los arreglos de más de una dimensión se llaman arreglos multidimensionales. Ejemplo: Un arreglo de tres dimensiones puede ser uno que contenga los datos relativos al número de estudiantes de una universidad de acuerdo a los siguientes criterios:  Año (primero a quinto)  Sexo (femenino/masculino)  Facultad (cinco facultades diferentes) d) Arreglos con múltiple subíndices Es la representación de tablas de valores, consistiendo de información arreglada en renglones y columnas. Para identificar un elemento particular de la tabla, deberemos de especificar dos subíndices; el primero identifica el renglón del elemento y el segundo identifica la columna del elemento. A los arreglos que requieren dos subíndices para identificar un elemento en particular
  • 3. se conocen como arreglo de doble subíndice. Note que los arreglos de múltiples subíndices pueden tener más de dos subíndices. El estándar ANSI indica que un sistema ANSI C debe soportar por lo menos 12 subíndices de arreglo. 3. OPERACIONES CON ARREGLOS Las operaciones en arreglos pueden clasificarse de la siguiente forma: a) Lectura Este proceso consiste en leer un dato de un arreglo y asignar un valor a cada uno de sus componentes. La lectura se realiza de la siguiente manera: Para i desde 1 hasta N haz x < arreglo[i] b) Escritura Consiste en asignarle un valor a cada elemento del arreglo. La escritura se realiza de la siguiente manera: Para i desde 1 hasta N haz arreglo[i] < x c) Asignación No es posible asignar directamente un valor a todo el arreglo, por lo que se realiza de la manera siguiente: Para i desde 1 hasta N haz arreglo[i] < algún_ valor d) Actualización Dentro de esta operación se encuentran las operaciones de eliminar, insertar y modificar datos. Para realizar este tipo de operaciones se debe tomar en cuenta si el arreglo esto o no ordenado. e) Búsqueda La búsqueda consiste en encontrar un determinado valor dentro de un conjunto de datos, para recuperar alguna información asociada con el valor buscado. Existen diferentes formas de realizar esta operación; en otras palabras hay distintos métodos o técnicas para realizar búsqueda en vectores. • Búsqueda secuencial o lineal • Búsqueda Binaria • Búsqueda Hash • Arboles de búsqueda
  • 4. f) Inserción Esta operación consiste en adicionar un nuevo elemento al arreglo. Se debe tener en cuenta: • Que no sobrepase el tamaño máximo declarado para el vector. • La operación puede darse para un arreglo ordenado o desordenado. • Si el arreglo está desordenado, se incrementa en uno el número de elementos y en esa posición N + 1 se inserta el nuevo elemento, si el arreglo está ordenado hay que buscar el lugar dentro del arreglo donde se debe inserta el nuevo valor para que continúe el vector ordenado. • Correr todos los elementos del vector una posición a la derecha, para abrirle espacio al nuevo elemento, a partir del lugar donde debe insertarse el nuevo dato. • Insertar el nuevo elemento del vector en el espacio que le corresponde. g) Eliminación Consiste en eliminar un elemento del arreglo, puede darse cuando el arreglo está desordenado u ordenado. El proceso de eliminación sigue los pasos que se describen a continuación: • Verificar que el arreglo no esté vacío. • Buscar la posición donde se encuentra el elemento a borrar. • Correr los elementos una posición a la izquierda, a partir de la posición siguiente donde se encuentra el valor a borrar. • Disminuir el número de elementos del vector en uno. • Enviar un mensaje en caso de que el elemento a borrar no esté dentro del arreglo. 4. ALGORITMOS DE BUSQUEDA Con frecuencia el programador trabajara con grandes cantidades de información almacenada en arreglos. Podría ser necesario determinar si algún arreglo contiene un valor que sea igual a cierto valor clave. El proceso para encontrar un elemento particular en un arreglo se llama búsqueda. Estudiaremos dos técnicas de búsqueda: una técnica simple llamada búsqueda lineal y una más eficiente llamada búsqueda binaria. Ambos programas se pueden implementar recursivamente o no.  Búsqueda lineal o secuencial
  • 5. La búsqueda secuencial o lineal busca un elemento de una lista utilizando un valor destino llamado clave. En una búsqueda secuencial (a veces llamada búsqueda lineal), los elementos de una lista o vector se exploran (se examinan) en secuencia, uno después de otro. La búsqueda secuencial es necesaria, por ejemplo, si se desea encontrar la persona cuyo número de teléfono es 958-220000 en un directorio o listado telefónico de su ciudad. Los directorios de teléfonos están organizados alfabéticamente por el nombre del abonado en lugar de por números de teléfono, de modo que deben explorarse todos los números, uno después de otro, esperando encontrar el número 958-220000. El algoritmo de búsqueda secuencial compara cada elemento del arreglo con la clave de búsqueda. Dado que el arreglo no está en un orden prefijado, es probable que el elemento a buscar pueda ser el primer elemento, el último elemento o cualquier otro. De promedio, al menos el programa tendrá que comparar la clave de búsqueda con la mitad de los elementos del arreglo. El método de búsqueda lineal funcionará bien con arreglos pequeños o no ordenados. La eficiencia de la búsqueda secuencial es pobre, tiene complejidad lineal, O(n). En síntesis la búsqueda lineal compara los elementos del arreglo con la clave de búsqueda hasta que encuentra el elemento o bien hasta que se determina que no se encuentra. int busqueda lineal (int A[], int clave, int n) { for (int i=0;i<n;i++) if (A[i]==clave) return i; return -1; } Este método funciona bien con arreglos pequeños y con los no ordenados. En arreglos grandes u ordenados conviene aplicar la búsqueda binaria que es más eficiente.  Búsqueda binaria Dados un entero X y un arreglo A de n enteros que se encuentran ordenados y en memoria, encontrar un i talque A[i] == X o retornar 0 si X no se encuentra en el arreglo (consideramos los elementos del arreglo de 1 a N. La estrategia consiste en comparar X con el elemento del medio del arreglo, si es igual entonces encontramos el elemento, sino, cuando X es menor que el elemento del medio aplicamos la misma estrategia al array a la izquierda del elemento del medio y si X es mayor que el elemento del medio aplicamos la misma estrategia al array a la derecha de dicho elemento. Para simplificar el c´odigo definimos A[0]=X. int busqueda binaria(int A[],int X,int n) {
  • 6. int izq=1,medio,der=n; A[0]=X; do { medio = (izq+der) / 2; if (izq > der) medio=0; else if A[medio] < X izq = medio +1; else der = medio-1; } while (A[medio] != X); return medio; } En síntesis las condiciones que debe cumplir el arreglo para poder usar búsqueda binaria son que el arreglo este ordenado y que se conozca el número de elementos. La búsqueda termina cuando encontramos el elemento o cuando el tamaño del arreglo a examinar sea cero. También están estos otros algoritmos de búsqueda:  Búsquedas en Arreglos: Una búsqueda es el proceso mediante el cual podemos localizar un elemento con un valor específico dentro de un conjunto de datos. Terminamos con éxito la búsqueda cuando el elemento es encontrado.  Búsqueda por hash: La idea principal de este método consiste en aplicar una función que traduce el valor del elemento buscado en un rango de direcciones relativas. Una desventaja importante de este método es que puede ocasionar colisiones. BIBLIOGRAFÍA  Carrillo, A. G. (2006). Fundamentos de Programación en C++. Delta Publicaciones.  Aguilar, J., García, L., Martínez, L. Z., Joyanes, I., & Zahonero, I. (2007). Estructura de datos en C#. McGraw-Hill.  Badía, J. M., Martínez, G., & Murgui, J. Tipos y estructuras básicas.  Deitel, H. M., & Deitel, P. J. (2003). Como programar en C. Pearson educación.