SlideShare una empresa de Scribd logo
1 de 11
1
ARREGLOS C++
1. DEFINICIÓN:
Un arreglo en C++ 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 [].EJEMPLO: int vector [10]; //
array de 10 enteros: vector[0]..vector[9].
2. ARREGLOS DE UNA DIMENSIÓN(VECTORES)
Un arreglo de una dimensión es una lista de variables, todas de un mismo tipo a las que
se hace referencia por medio de un nombre común. Una variable individual del arreglo se
llama elemento del arreglo. Para declarar un arreglo de una sola dimensión se usa el
formato general:
Representación gráfica de un arreglo de una dimensión: float arreglo[6];
float Arreglo[6];
2
23
7
9
0
3
Representación gráfica de un arreglo de dos dimensiones: int arreglo[4][4]
Int Arreglo[ 4] [4] 0 1 2 3
2 4 7 9
1 2 3 4
4 5 6 7
8 90 3 4
0
1
2
3
Arreglo[0]
Arreglo[1]
Arreglo[2]
Arreglo[3]
Arreglo[4]
Arreglo[5]
2
Representación gráfica de un arreglo de tres dimensiones. int arreglo[4][4][3];
3. ÍNDICE DE UN ARREGLO:
Todo arreglo esta compuesto por un número de elementos. El índice es un número
correlativo que indica la posición de un elemento del arreglo. Los índices en C++ van desde
la posición 0 hasta la posición tamaño – 1.
EJEMPLO DE ÍNDICE DE UN ARREGLO
Como se puede ver en el grafico es un arreglo unidimensional de tamaño 10, pero el índice
va del 0 al 9. Es por esto que al indicar su posición se debe inicializar en 0.
4. ELEMENTO DE UN ARREGLO:
Un elemento de un arreglo es un valor particular dentro de la estructura del arreglo. Para
acceder a un elemento del arreglo es necesario indicar la posición o índice dentro del
arreglo. Ejemplo:
• arreglo[0] //Primer elemento del arreglo
• arreglo[3] //Cuarto elemento del arreglo
5. INICIALIZACIÓN DE ARRAYS
Los arrays pueden ser inicializados en la declaración. Ejemplos:
float R[10] = {2, 32, 4.6, 2, 1, 0.5, 3, 8, 0, 12};
float S[ ] = {2, 32, 4.6, 2, 1, 0.5, 3, 8, 0, 12};
int N[ ] = {1, 2, 3, 6};
int M[ ][3] = { 213, 32, 32, 32, 43, 32, 3, 43, 21};
char Mensaje[ ] = "Error de lectura";
char Saludo[] = {H, o, l, a, 0};
3
EJEMPLO :El siguiente programa carga el arreglo del número 1 al 9 y luego los muestra
#include <iostream>
Using namespace std;
void main(){
int numero[10];
int i;
for (i=1;i<11;i++){
numero[i-1]=i;}
for (i=0;i<10;i++){
cout<<numero[i]<<endl;
} getch;
}
6.- DECLARACIÓN DE ARREGLOS UNIDIMENSIONALES:
Para declarar un arreglo de una sola dimensión se usa el formato general:
tipo_dato identificador[tamaño];
int arreglo[3]; // forma un arreglo de una dimensión y de tres elementos
Nombre del arreglo
Arreglo
Nombre de los elementos
arreglo[0] → primer elemento
arreglo[1] → segundo elemento
arreglo[2] → tercer elemento
4
7 DECLARACIÓN DE ARREGLOS MULTIDIMENSIONALES, BIDIMENSIONALES,
TABLAS O MATRIZ
Los arrays multidimensionales son definidos prácticamente de la misma manera que los
arrays unidimensionales, excepto que se requiere un par de corchetes para cada índice. En
general:
tipo_almacenm tipo_dato nombre_array [expresión 1][expresión 2]..[expresión n]
Recordar que tipo_almacenamiento es opcional; los valores por defecto son automáticos
para arrays definidos dentro de una función y externos para los arrays definidos fuera de una
función.
Los arrays multidimensionales se procesan de la misma manera que los array
unidimensionales, sobre la base de elemento a elemento. Sin embargo, se requiere algún
cuidado cuando se pasan arrays multidimensionales a una función. En particular, las
declaraciones de argumentos formales dentro de la definición de función deben incluir
especificaciones explícitas de tamaño en todos los índices excepto en el primero.
La sintaxis es la siguiente:
tipo_dato identificador [dimensión1] [dimensión2] ...[dimensiónN] ;
Donde N es un número natural positivo.
EJEMPLO: Declaración:int m[2][3]; // forma una tabla de dos filas y tres columnas.
// cada fila es un arreglo de una dimensión.
8. OPERACIONES CON ARREGLOS UNIDIMENSIONALES:
Suma y Resta: Los arreglos deben tener el mismo tamaño y la suma se realiza elemento a
elemento. Por ejemplo C = A + B. Donde A, B y C son arreglos de enteros de tamaño 3.
9. OPERACIOES CON ARREGLOS MULTIDIMENSIONALES:
SUMA Y RESTA: Los arreglos deben tener el mismo orden y la suma se realiza elemento a
elemento. Por ejemplo sean A,B y C arreglos de números punto flotante de orden 2x3.
Entonces la operación C = A+B sería:
5
Las operaciones con arreglos unidimensionaleso arreglos multidimensionales son de mucha
utilidad, ya que nos facilitan el cálculo de operaciones muy complejas.
10 PASO DE ARRAYS A FUNCIONES
El nombre de un array se puede usar como argumento de una función, permitiendo así que el
array completo sea pasado a la función. Sin embargo la manera en que se pasa difiere
mucho de la de una variable ordinaria.
Para pasar un array a una función, el nombre del array debe aparecer sólo, sin corchetes o
índices, como un argumento actual dentro de la llamada a la función. El correspondiente
argumento formal se escribe de la misma manera, pero debe ser declarado como un array
dentro de la declaración de argumentos formales. Cuando se declara un array
unidimensional como un argumento formal, el array se escribe con un par de corchetes
vacíos.
Hemos visto que los argumentos son pasados a la función por valor cuando los argumentos
son variables ordinarias. Sin embargo, cuando se pasa un array a una función, los valores de
los elementos del array no son pasados a la función. En vez de esto, el nombre del array se
interpreta como la dirección del primer elemento del array. Esta dirección se asigna al
correspondiente argumento formal cuando se llama a la función. El argumento formal se
convierte por tanto en un puntero al primer elemento del array (más sobre esto cuando
hablemos de punteros). Los argumentos pasados de esta forma se dicen que son pasados
por referencia en vez de por valor. Por tanto, si un elemento del array es alterado dentro de
la función, esta alteración será reconocida en todo el ámbito de definición del array.
11.TECNICAS SIMPLES DE ORDENAMIENTO
Ordenar y buscar elementos son dos de las actividades más comunes en cualquiera
aplicación grande. En esta guía se trataran estos dos importantes temas y se presentaran
algunos algoritmos de ordenamiento.
Las aplicaciones que manejan grandes cantidades de datos requieren de algún tipo de
ordenamiento. Se pueden tomar varios ejemplos de tales aplicaciones en la vida real , tales
como:
6
 Ordenar libros y diarios en una biblioteca, por orden de autor año de publicación y
titulo.
 Ordenamiento alfabético de nombres en un directorio telefónico.
 Listar palabras en u diccionario,.
 Ordenar resultados de motores de búsqueda, basados en su relevancia para el tema
buscado.
Las técnicas de ordenamiento son principalmente de dos categorías:
 Ordenamiento Interno: Se aplica cuando los elementos a ser ordenados están
disponibles en la memoria primaria.
 Ordenamiento Externo: Se aplica cuando los elementos a ser ordenados son muchos
y están disponibles sólo en dispositivo de almacenamiento secundario.
Técnicas simples de ordenamiento
Las tres técnicas de ordenamiento a estudiar son:
 Ordenamiento por Inserción
 Ordenamiento de Burbuja
 Ordenamiento por Selección
Ordenamiento por Inserción
Esta técnica se conoce como ordenamiento por inserción, dado que se crea un agujero y
luego se inserta el elemento.
Dado que usa un solo arreglo n el código C que se da a continuación, es necesario el uso de
una variable temporal para guardar el elemento i en cada iteración. La función toma el
numero de elementos en el arreglo como n y ordena los elementos desde la posición 0 hasta
7
la posición n-1. A continuación se presenta el código C de la Función Ordenamiento
inserción.
void ordenamientoInsercion (tipoelemento *inarray, tipoelemento n) {
tipoelemento temporal;
tipoelemento i,j;
for (i = 1; i < n; i++) {
temporal = inarray[ i];
j = i - 1;
while (j >= 0 && temporal < inarray[j]){
inarray[j+1] = inarray[j];
j--;
}
inarray[j+1] = temporal;
}
}
Ordenamiento por Burbuja (Bubble Sort)
El algoritmo de ordenamiento por burbuja es uno de los mas simples y mas usados
para ordenar. Este algoritmo no requiere de un segundo arreglo para ordenar los
elementos del arreglo, pero usa el arreglo original, inarray, para ordenar.
En la técnica de ordenamiento por burbuja, solo ocurre una pasada cuando ocurre un
intercambio de elementos. Sino ocurren intercambios, esto implica que el arreglo ya
está ordenado.
Nota: Para determinar si los elementos en el arreglo están ordenados o no, el arreglo
es recorrido al menos una vez.
El nombre de ordenamiento por burbuja se le da a este algoritmo dado que el mayor
elemento “Burbujea” a su ubicación correcta en el arreglo (si es ascendente), después
de cada pasada.
8
void ordenamientoBurbuja(tipoelemento *inarray, tipoelemento n){
tipoelemento i,temporal, intercambio,j;
intercambio = 1;
j = 1;
while(intercambio){
intercambio = 0;
for(i = 0; i < n - j; i++){
if (inarray[i] > inarray[i+1]){
temporal = inarray[i];
inarray[i] = inarray[i+1];
inarray[i+1] = temporal;
intercambio = 1;
}
}
j++;
}
}
Ordenamiento por Selección
Se va a aplicar la técnica de ordenamiento por selección para ordenar un arreglo
inarrray que contiene elementos. Primero se selecciona el elemento mas pequeño en
el arreglo y se coloca en la primera posición (en la posición inarray [0]) intercambiando
posiciones con el elemento en inarray[0]. El elemento mas pequeño puede
encontrarse en cualquier posición, pos, en inarray. Por lo tanto, inarray[0]se inserta en
inarray [pos]. Luego, se busca el siguiente elemento más pequeño en inarray, a partir
de la posición 1 en adelante. Cuando se encuentra, se asigna nuevamente a pos y se
intercambia inarray[1] con inarray[pos]. Esto se repite durante n-1 pasadas, esto es,
hasta que se alcanza el final del arreglo. El arreglo esta ordenado después que se
completan todas las pasadas.
Dicho en palabras simples, el ordenamiento por selección involucra encontrar el
elemento mínimo y realizar un intercambio.
9
El programa que permite el ordenamiento de un arreglo por la técnica de
ordenamiento por selección se da a continuación.
void ordenamientoSeleccion(tipoelemento *inarray, tipoelemento n){
tipoelemento i,pos,j,min,temporal;
for(i = 0; i < n - 2; i++){
min = inarray[i];
pos = i;
for (j = i + 1; j <= n - 1; j++)
if (inarray[j] < min){
min = inarray[j];
pos = j;
}
temporal = inarray[i];
inarray[i] = inarray[pos];
inarray[pos] = temporal;
}
}
12.TECNICAS DE BUSQUEDA
Localizar información es una de las operaciones clave en muchas aplicaciones.
La búsqueda se lleva a cabo basada en un elemento particular, el cual es
generalmente una entrada. Este elemento es la base de la búsqueda, es el llamado
elemento de búsqueda. También se le conoce como elemento clave.
La búsqueda generalmente se divide en dos áreas que son:
 Búsqueda Interna__ Cuando todos los registros que se buscan están en el área
de memoria primaria.
 Búsqueda Externa__ Cuando el número de registros es demasiado grande y
no se pueden mantener juntos en la memoria primaria.
Búsqueda Lineal
10
Uno de los métodos mas simple de búsqueda es comenzar buscando desde la
primera posición del arreglo (índice es 0), comprobar la ocurrencia del elemento en
esa posición, y moverse a la siguiente posición del arreglo hasta que el elemento es
encontrado en una posición particular o se llega al final del arreglo y el elemento no es
encontrado.
int busquedaLineal(Tipo_elemento *elementos, int n, Tipo_elemento element) {
int k, found = 0;
for (k = 0; k < n && !found; k++)
if (elementos[k] == element)
found = 1;
return found;
}
Búsqueda Binaria
Este método de búsqueda requiere que el arreglo esté ordenado ascendente o
descendentemente. En la lista ordenada, el elemento central es comparado con el
elemento a buscar. Si estos coinciden entonces la búsqueda tuvo éxito. Si el elemento
no se encuentra en esta posición, el algoritmo verifica si el elemento de búsqueda es
mayor o menor que el elemento central. Esto indica si el elemento a buscar será
encontrado en la parte superior o inferior del arreglo. Así se reduce el número de
elementos buscados a la mitad del tamaño original. Después se aplican los mismos
pasos para buscar el centro del arreglo. Finalmente si se recorre el arreglo
completamente sin encontrar una coincidencia, la búsqueda no tuvo éxito.
int binarySearch(Element_type *elements, int n, Element_type element)
{
int top, bot,mid,found;
top=0;
bot=n-1;
found=0;
11
while (top<=bot && !found)
{
mid=(top+bot)/2;
if(elements[mid]==element)
found=1;
else
if(elements[mid]<element)
top=mid+1;
else
bot=mid-1;
}
return found;
}

Más contenido relacionado

La actualidad más candente

Act. Individual.- Pseudocódigos y diagramas de flujo
 Act. Individual.- Pseudocódigos y diagramas de flujo Act. Individual.- Pseudocódigos y diagramas de flujo
Act. Individual.- Pseudocódigos y diagramas de flujoElizabeth Reyna
 
Lenguaje de programación c
Lenguaje de programación cLenguaje de programación c
Lenguaje de programación cvictdiazm
 
Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Andres Garcia Garcia
 
Funciones propias de visual basic
Funciones propias de visual basicFunciones propias de visual basic
Funciones propias de visual basicYesenia Bautista
 
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programaciondiego MC
 
Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Partecarpio
 
Descomposicion funcional parte ii 2013 2
Descomposicion funcional parte ii 2013 2Descomposicion funcional parte ii 2013 2
Descomposicion funcional parte ii 2013 2IngEsquivel
 
Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++Diego Maxdj Chicaiza
 
Tema 5 arreglos y cadenas por gio
Tema 5   arreglos y cadenas por gioTema 5   arreglos y cadenas por gio
Tema 5 arreglos y cadenas por gioRobert Wolf
 
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)José Antonio Sandoval Acosta
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matricesJohanna Marin
 
Utp pti_s5_arreglos
 Utp pti_s5_arreglos Utp pti_s5_arreglos
Utp pti_s5_arreglosjcbenitezp
 
Utp pti_s5_arreglos 2012-2
 Utp pti_s5_arreglos 2012-2 Utp pti_s5_arreglos 2012-2
Utp pti_s5_arreglos 2012-2jcbenitezp
 

La actualidad más candente (19)

Act. Individual.- Pseudocódigos y diagramas de flujo
 Act. Individual.- Pseudocódigos y diagramas de flujo Act. Individual.- Pseudocódigos y diagramas de flujo
Act. Individual.- Pseudocódigos y diagramas de flujo
 
Lenguaje de programación c
Lenguaje de programación cLenguaje de programación c
Lenguaje de programación c
 
Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10
 
Funciones propias de visual basic
Funciones propias de visual basicFunciones propias de visual basic
Funciones propias de visual basic
 
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacion
 
Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Parte
 
Descomposicion funcional parte ii 2013 2
Descomposicion funcional parte ii 2013 2Descomposicion funcional parte ii 2013 2
Descomposicion funcional parte ii 2013 2
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambiente de programacin en pascal
Ambiente de programacin en pascalAmbiente de programacin en pascal
Ambiente de programacin en pascal
 
Ambiente
 Ambiente Ambiente
Ambiente
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Maple v comandos
Maple v comandosMaple v comandos
Maple v comandos
 
Solucion ejercicios punteros cadenas-vectores
Solucion ejercicios punteros cadenas-vectoresSolucion ejercicios punteros cadenas-vectores
Solucion ejercicios punteros cadenas-vectores
 
Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++
 
Tema 5 arreglos y cadenas por gio
Tema 5   arreglos y cadenas por gioTema 5   arreglos y cadenas por gio
Tema 5 arreglos y cadenas por gio
 
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
 
Utp pti_s5_arreglos
 Utp pti_s5_arreglos Utp pti_s5_arreglos
Utp pti_s5_arreglos
 
Utp pti_s5_arreglos 2012-2
 Utp pti_s5_arreglos 2012-2 Utp pti_s5_arreglos 2012-2
Utp pti_s5_arreglos 2012-2
 

Similar a Arreglos en c++2020

Similar a Arreglos en c++2020 (20)

Arreglos
ArreglosArreglos
Arreglos
 
Arreglos programacion
Arreglos programacionArreglos programacion
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.pptx
 
Tema6
Tema6Tema6
Tema6
 
Arreglos
ArreglosArreglos
Arreglos
 
5ta Evaluación de Progamación.docx
5ta Evaluación de Progamación.docx5ta Evaluación de Progamación.docx
5ta Evaluación de Progamación.docx
 
Arreglos
ArreglosArreglos
Arreglos
 
Arrays
ArraysArrays
Arrays
 
Arrayoareglos
ArrayoareglosArrayoareglos
Arrayoareglos
 
Array o arreglos
Array o arreglos Array o arreglos
Array o arreglos
 
Daniel lugoalgoritmica
Daniel lugoalgoritmicaDaniel lugoalgoritmica
Daniel lugoalgoritmica
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Universidad politécnica amazónica arreglos
Universidad politécnica amazónica arreglosUniversidad politécnica amazónica arreglos
Universidad politécnica amazónica arreglos
 
Funciones
FuncionesFunciones
Funciones
 
Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos
 
Estructura De Datos Unidad Ii
Estructura De Datos Unidad IiEstructura De Datos Unidad Ii
Estructura De Datos Unidad Ii
 
Introduccions a java
Introduccions a javaIntroduccions a java
Introduccions a java
 
Fundamentos de programacion en java
Fundamentos de programacion en javaFundamentos de programacion en java
Fundamentos de programacion en java
 

Más de Sol Hernández

Linea de tiempo sol loyo12
Linea de tiempo sol loyo12Linea de tiempo sol loyo12
Linea de tiempo sol loyo12Sol Hernández
 
Linea de tiempo sol loyo
Linea de tiempo sol loyoLinea de tiempo sol loyo
Linea de tiempo sol loyoSol Hernández
 
Guia programacion modular
Guia programacion modularGuia programacion modular
Guia programacion modularSol Hernández
 
Santaella u6 programacionmodular (1)
Santaella u6 programacionmodular (1)Santaella u6 programacionmodular (1)
Santaella u6 programacionmodular (1)Sol Hernández
 
331985319 santaella u5-lenguajedeprogramacionc
331985319 santaella u5-lenguajedeprogramacionc331985319 santaella u5-lenguajedeprogramacionc
331985319 santaella u5-lenguajedeprogramacioncSol Hernández
 
Replanificacion de entregables proyecto ii fase 1 2021
Replanificacion de entregables  proyecto ii  fase 1 2021Replanificacion de entregables  proyecto ii  fase 1 2021
Replanificacion de entregables proyecto ii fase 1 2021Sol Hernández
 
Lineamientos academicos pstii pnfi 2021
Lineamientos academicos  pstii pnfi 2021Lineamientos academicos  pstii pnfi 2021
Lineamientos academicos pstii pnfi 2021Sol Hernández
 
Plan evaluacion 1-2021reprogramada
Plan evaluacion 1-2021reprogramadaPlan evaluacion 1-2021reprogramada
Plan evaluacion 1-2021reprogramadaSol Hernández
 
Santaella u5 ejerciciosestructurasdecontrol
Santaella u5 ejerciciosestructurasdecontrolSantaella u5 ejerciciosestructurasdecontrol
Santaella u5 ejerciciosestructurasdecontrolSol Hernández
 
Guia didactica programacion estructurada unidad 4
Guia didactica programacion estructurada unidad 4Guia didactica programacion estructurada unidad 4
Guia didactica programacion estructurada unidad 4Sol Hernández
 
Lineamientos academicos pstii pnfi 2021
Lineamientos academicos  pstii pnfi 2021Lineamientos academicos  pstii pnfi 2021
Lineamientos academicos pstii pnfi 2021Sol Hernández
 
Planificacion de entregables proyecto ii fase 1 2021
Planificacion de entregables  proyecto ii  fase 1 2021Planificacion de entregables  proyecto ii  fase 1 2021
Planificacion de entregables proyecto ii fase 1 2021Sol Hernández
 
Plan evaluacion 1-2021ultimo2.docx
Plan evaluacion 1-2021ultimo2.docxPlan evaluacion 1-2021ultimo2.docx
Plan evaluacion 1-2021ultimo2.docxSol Hernández
 
Informe pstii 2020 (1)
Informe pstii 2020 (1)Informe pstii 2020 (1)
Informe pstii 2020 (1)Sol Hernández
 
Planificacion de entregables proyecto ii fase 1
Planificacion de entregables  proyecto ii  fase 1Planificacion de entregables  proyecto ii  fase 1
Planificacion de entregables proyecto ii fase 1Sol Hernández
 
Clase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasClase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasSol Hernández
 
Clase de datos variables constantes
Clase de datos variables constantesClase de datos variables constantes
Clase de datos variables constantesSol Hernández
 
331161221 santaella u2-estandaresenedisenodealgoritmos
331161221 santaella u2-estandaresenedisenodealgoritmos331161221 santaella u2-estandaresenedisenodealgoritmos
331161221 santaella u2-estandaresenedisenodealgoritmosSol Hernández
 

Más de Sol Hernández (20)

Linea de tiempo sol loyo12
Linea de tiempo sol loyo12Linea de tiempo sol loyo12
Linea de tiempo sol loyo12
 
Linea de tiempo sol loyo
Linea de tiempo sol loyoLinea de tiempo sol loyo
Linea de tiempo sol loyo
 
Ejerreueltos de c
Ejerreueltos de cEjerreueltos de c
Ejerreueltos de c
 
Guia programacion modular
Guia programacion modularGuia programacion modular
Guia programacion modular
 
Santaella u6 programacionmodular (1)
Santaella u6 programacionmodular (1)Santaella u6 programacionmodular (1)
Santaella u6 programacionmodular (1)
 
Lenguaje c sintaxis
Lenguaje c sintaxisLenguaje c sintaxis
Lenguaje c sintaxis
 
331985319 santaella u5-lenguajedeprogramacionc
331985319 santaella u5-lenguajedeprogramacionc331985319 santaella u5-lenguajedeprogramacionc
331985319 santaella u5-lenguajedeprogramacionc
 
Replanificacion de entregables proyecto ii fase 1 2021
Replanificacion de entregables  proyecto ii  fase 1 2021Replanificacion de entregables  proyecto ii  fase 1 2021
Replanificacion de entregables proyecto ii fase 1 2021
 
Lineamientos academicos pstii pnfi 2021
Lineamientos academicos  pstii pnfi 2021Lineamientos academicos  pstii pnfi 2021
Lineamientos academicos pstii pnfi 2021
 
Plan evaluacion 1-2021reprogramada
Plan evaluacion 1-2021reprogramadaPlan evaluacion 1-2021reprogramada
Plan evaluacion 1-2021reprogramada
 
Santaella u5 ejerciciosestructurasdecontrol
Santaella u5 ejerciciosestructurasdecontrolSantaella u5 ejerciciosestructurasdecontrol
Santaella u5 ejerciciosestructurasdecontrol
 
Guia didactica programacion estructurada unidad 4
Guia didactica programacion estructurada unidad 4Guia didactica programacion estructurada unidad 4
Guia didactica programacion estructurada unidad 4
 
Lineamientos academicos pstii pnfi 2021
Lineamientos academicos  pstii pnfi 2021Lineamientos academicos  pstii pnfi 2021
Lineamientos academicos pstii pnfi 2021
 
Planificacion de entregables proyecto ii fase 1 2021
Planificacion de entregables  proyecto ii  fase 1 2021Planificacion de entregables  proyecto ii  fase 1 2021
Planificacion de entregables proyecto ii fase 1 2021
 
Plan evaluacion 1-2021ultimo2.docx
Plan evaluacion 1-2021ultimo2.docxPlan evaluacion 1-2021ultimo2.docx
Plan evaluacion 1-2021ultimo2.docx
 
Informe pstii 2020 (1)
Informe pstii 2020 (1)Informe pstii 2020 (1)
Informe pstii 2020 (1)
 
Planificacion de entregables proyecto ii fase 1
Planificacion de entregables  proyecto ii  fase 1Planificacion de entregables  proyecto ii  fase 1
Planificacion de entregables proyecto ii fase 1
 
Clase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasClase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemas
 
Clase de datos variables constantes
Clase de datos variables constantesClase de datos variables constantes
Clase de datos variables constantes
 
331161221 santaella u2-estandaresenedisenodealgoritmos
331161221 santaella u2-estandaresenedisenodealgoritmos331161221 santaella u2-estandaresenedisenodealgoritmos
331161221 santaella u2-estandaresenedisenodealgoritmos
 

Último

FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfCarol Andrea Eraso Guerrero
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfEDILIAGAMBOA
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfNataliaMalky1
 

Último (20)

FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdf
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
 

Arreglos en c++2020

  • 1. 1 ARREGLOS C++ 1. DEFINICIÓN: Un arreglo en C++ 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 [].EJEMPLO: int vector [10]; // array de 10 enteros: vector[0]..vector[9]. 2. ARREGLOS DE UNA DIMENSIÓN(VECTORES) Un arreglo de una dimensión es una lista de variables, todas de un mismo tipo a las que se hace referencia por medio de un nombre común. Una variable individual del arreglo se llama elemento del arreglo. Para declarar un arreglo de una sola dimensión se usa el formato general: Representación gráfica de un arreglo de una dimensión: float arreglo[6]; float Arreglo[6]; 2 23 7 9 0 3 Representación gráfica de un arreglo de dos dimensiones: int arreglo[4][4] Int Arreglo[ 4] [4] 0 1 2 3 2 4 7 9 1 2 3 4 4 5 6 7 8 90 3 4 0 1 2 3 Arreglo[0] Arreglo[1] Arreglo[2] Arreglo[3] Arreglo[4] Arreglo[5]
  • 2. 2 Representación gráfica de un arreglo de tres dimensiones. int arreglo[4][4][3]; 3. ÍNDICE DE UN ARREGLO: Todo arreglo esta compuesto por un número de elementos. El índice es un número correlativo que indica la posición de un elemento del arreglo. Los índices en C++ van desde la posición 0 hasta la posición tamaño – 1. EJEMPLO DE ÍNDICE DE UN ARREGLO Como se puede ver en el grafico es un arreglo unidimensional de tamaño 10, pero el índice va del 0 al 9. Es por esto que al indicar su posición se debe inicializar en 0. 4. ELEMENTO DE UN ARREGLO: Un elemento de un arreglo es un valor particular dentro de la estructura del arreglo. Para acceder a un elemento del arreglo es necesario indicar la posición o índice dentro del arreglo. Ejemplo: • arreglo[0] //Primer elemento del arreglo • arreglo[3] //Cuarto elemento del arreglo 5. INICIALIZACIÓN DE ARRAYS Los arrays pueden ser inicializados en la declaración. Ejemplos: float R[10] = {2, 32, 4.6, 2, 1, 0.5, 3, 8, 0, 12}; float S[ ] = {2, 32, 4.6, 2, 1, 0.5, 3, 8, 0, 12}; int N[ ] = {1, 2, 3, 6}; int M[ ][3] = { 213, 32, 32, 32, 43, 32, 3, 43, 21}; char Mensaje[ ] = "Error de lectura"; char Saludo[] = {H, o, l, a, 0};
  • 3. 3 EJEMPLO :El siguiente programa carga el arreglo del número 1 al 9 y luego los muestra #include <iostream> Using namespace std; void main(){ int numero[10]; int i; for (i=1;i<11;i++){ numero[i-1]=i;} for (i=0;i<10;i++){ cout<<numero[i]<<endl; } getch; } 6.- DECLARACIÓN DE ARREGLOS UNIDIMENSIONALES: Para declarar un arreglo de una sola dimensión se usa el formato general: tipo_dato identificador[tamaño]; int arreglo[3]; // forma un arreglo de una dimensión y de tres elementos Nombre del arreglo Arreglo Nombre de los elementos arreglo[0] → primer elemento arreglo[1] → segundo elemento arreglo[2] → tercer elemento
  • 4. 4 7 DECLARACIÓN DE ARREGLOS MULTIDIMENSIONALES, BIDIMENSIONALES, TABLAS O MATRIZ Los arrays multidimensionales son definidos prácticamente de la misma manera que los arrays unidimensionales, excepto que se requiere un par de corchetes para cada índice. En general: tipo_almacenm tipo_dato nombre_array [expresión 1][expresión 2]..[expresión n] Recordar que tipo_almacenamiento es opcional; los valores por defecto son automáticos para arrays definidos dentro de una función y externos para los arrays definidos fuera de una función. Los arrays multidimensionales se procesan de la misma manera que los array unidimensionales, sobre la base de elemento a elemento. Sin embargo, se requiere algún cuidado cuando se pasan arrays multidimensionales a una función. En particular, las declaraciones de argumentos formales dentro de la definición de función deben incluir especificaciones explícitas de tamaño en todos los índices excepto en el primero. La sintaxis es la siguiente: tipo_dato identificador [dimensión1] [dimensión2] ...[dimensiónN] ; Donde N es un número natural positivo. EJEMPLO: Declaración:int m[2][3]; // forma una tabla de dos filas y tres columnas. // cada fila es un arreglo de una dimensión. 8. OPERACIONES CON ARREGLOS UNIDIMENSIONALES: Suma y Resta: Los arreglos deben tener el mismo tamaño y la suma se realiza elemento a elemento. Por ejemplo C = A + B. Donde A, B y C son arreglos de enteros de tamaño 3. 9. OPERACIOES CON ARREGLOS MULTIDIMENSIONALES: SUMA Y RESTA: Los arreglos deben tener el mismo orden y la suma se realiza elemento a elemento. Por ejemplo sean A,B y C arreglos de números punto flotante de orden 2x3. Entonces la operación C = A+B sería:
  • 5. 5 Las operaciones con arreglos unidimensionaleso arreglos multidimensionales son de mucha utilidad, ya que nos facilitan el cálculo de operaciones muy complejas. 10 PASO DE ARRAYS A FUNCIONES El nombre de un array se puede usar como argumento de una función, permitiendo así que el array completo sea pasado a la función. Sin embargo la manera en que se pasa difiere mucho de la de una variable ordinaria. Para pasar un array a una función, el nombre del array debe aparecer sólo, sin corchetes o índices, como un argumento actual dentro de la llamada a la función. El correspondiente argumento formal se escribe de la misma manera, pero debe ser declarado como un array dentro de la declaración de argumentos formales. Cuando se declara un array unidimensional como un argumento formal, el array se escribe con un par de corchetes vacíos. Hemos visto que los argumentos son pasados a la función por valor cuando los argumentos son variables ordinarias. Sin embargo, cuando se pasa un array a una función, los valores de los elementos del array no son pasados a la función. En vez de esto, el nombre del array se interpreta como la dirección del primer elemento del array. Esta dirección se asigna al correspondiente argumento formal cuando se llama a la función. El argumento formal se convierte por tanto en un puntero al primer elemento del array (más sobre esto cuando hablemos de punteros). Los argumentos pasados de esta forma se dicen que son pasados por referencia en vez de por valor. Por tanto, si un elemento del array es alterado dentro de la función, esta alteración será reconocida en todo el ámbito de definición del array. 11.TECNICAS SIMPLES DE ORDENAMIENTO Ordenar y buscar elementos son dos de las actividades más comunes en cualquiera aplicación grande. En esta guía se trataran estos dos importantes temas y se presentaran algunos algoritmos de ordenamiento. Las aplicaciones que manejan grandes cantidades de datos requieren de algún tipo de ordenamiento. Se pueden tomar varios ejemplos de tales aplicaciones en la vida real , tales como:
  • 6. 6  Ordenar libros y diarios en una biblioteca, por orden de autor año de publicación y titulo.  Ordenamiento alfabético de nombres en un directorio telefónico.  Listar palabras en u diccionario,.  Ordenar resultados de motores de búsqueda, basados en su relevancia para el tema buscado. Las técnicas de ordenamiento son principalmente de dos categorías:  Ordenamiento Interno: Se aplica cuando los elementos a ser ordenados están disponibles en la memoria primaria.  Ordenamiento Externo: Se aplica cuando los elementos a ser ordenados son muchos y están disponibles sólo en dispositivo de almacenamiento secundario. Técnicas simples de ordenamiento Las tres técnicas de ordenamiento a estudiar son:  Ordenamiento por Inserción  Ordenamiento de Burbuja  Ordenamiento por Selección Ordenamiento por Inserción Esta técnica se conoce como ordenamiento por inserción, dado que se crea un agujero y luego se inserta el elemento. Dado que usa un solo arreglo n el código C que se da a continuación, es necesario el uso de una variable temporal para guardar el elemento i en cada iteración. La función toma el numero de elementos en el arreglo como n y ordena los elementos desde la posición 0 hasta
  • 7. 7 la posición n-1. A continuación se presenta el código C de la Función Ordenamiento inserción. void ordenamientoInsercion (tipoelemento *inarray, tipoelemento n) { tipoelemento temporal; tipoelemento i,j; for (i = 1; i < n; i++) { temporal = inarray[ i]; j = i - 1; while (j >= 0 && temporal < inarray[j]){ inarray[j+1] = inarray[j]; j--; } inarray[j+1] = temporal; } } Ordenamiento por Burbuja (Bubble Sort) El algoritmo de ordenamiento por burbuja es uno de los mas simples y mas usados para ordenar. Este algoritmo no requiere de un segundo arreglo para ordenar los elementos del arreglo, pero usa el arreglo original, inarray, para ordenar. En la técnica de ordenamiento por burbuja, solo ocurre una pasada cuando ocurre un intercambio de elementos. Sino ocurren intercambios, esto implica que el arreglo ya está ordenado. Nota: Para determinar si los elementos en el arreglo están ordenados o no, el arreglo es recorrido al menos una vez. El nombre de ordenamiento por burbuja se le da a este algoritmo dado que el mayor elemento “Burbujea” a su ubicación correcta en el arreglo (si es ascendente), después de cada pasada.
  • 8. 8 void ordenamientoBurbuja(tipoelemento *inarray, tipoelemento n){ tipoelemento i,temporal, intercambio,j; intercambio = 1; j = 1; while(intercambio){ intercambio = 0; for(i = 0; i < n - j; i++){ if (inarray[i] > inarray[i+1]){ temporal = inarray[i]; inarray[i] = inarray[i+1]; inarray[i+1] = temporal; intercambio = 1; } } j++; } } Ordenamiento por Selección Se va a aplicar la técnica de ordenamiento por selección para ordenar un arreglo inarrray que contiene elementos. Primero se selecciona el elemento mas pequeño en el arreglo y se coloca en la primera posición (en la posición inarray [0]) intercambiando posiciones con el elemento en inarray[0]. El elemento mas pequeño puede encontrarse en cualquier posición, pos, en inarray. Por lo tanto, inarray[0]se inserta en inarray [pos]. Luego, se busca el siguiente elemento más pequeño en inarray, a partir de la posición 1 en adelante. Cuando se encuentra, se asigna nuevamente a pos y se intercambia inarray[1] con inarray[pos]. Esto se repite durante n-1 pasadas, esto es, hasta que se alcanza el final del arreglo. El arreglo esta ordenado después que se completan todas las pasadas. Dicho en palabras simples, el ordenamiento por selección involucra encontrar el elemento mínimo y realizar un intercambio.
  • 9. 9 El programa que permite el ordenamiento de un arreglo por la técnica de ordenamiento por selección se da a continuación. void ordenamientoSeleccion(tipoelemento *inarray, tipoelemento n){ tipoelemento i,pos,j,min,temporal; for(i = 0; i < n - 2; i++){ min = inarray[i]; pos = i; for (j = i + 1; j <= n - 1; j++) if (inarray[j] < min){ min = inarray[j]; pos = j; } temporal = inarray[i]; inarray[i] = inarray[pos]; inarray[pos] = temporal; } } 12.TECNICAS DE BUSQUEDA Localizar información es una de las operaciones clave en muchas aplicaciones. La búsqueda se lleva a cabo basada en un elemento particular, el cual es generalmente una entrada. Este elemento es la base de la búsqueda, es el llamado elemento de búsqueda. También se le conoce como elemento clave. La búsqueda generalmente se divide en dos áreas que son:  Búsqueda Interna__ Cuando todos los registros que se buscan están en el área de memoria primaria.  Búsqueda Externa__ Cuando el número de registros es demasiado grande y no se pueden mantener juntos en la memoria primaria. Búsqueda Lineal
  • 10. 10 Uno de los métodos mas simple de búsqueda es comenzar buscando desde la primera posición del arreglo (índice es 0), comprobar la ocurrencia del elemento en esa posición, y moverse a la siguiente posición del arreglo hasta que el elemento es encontrado en una posición particular o se llega al final del arreglo y el elemento no es encontrado. int busquedaLineal(Tipo_elemento *elementos, int n, Tipo_elemento element) { int k, found = 0; for (k = 0; k < n && !found; k++) if (elementos[k] == element) found = 1; return found; } Búsqueda Binaria Este método de búsqueda requiere que el arreglo esté ordenado ascendente o descendentemente. En la lista ordenada, el elemento central es comparado con el elemento a buscar. Si estos coinciden entonces la búsqueda tuvo éxito. Si el elemento no se encuentra en esta posición, el algoritmo verifica si el elemento de búsqueda es mayor o menor que el elemento central. Esto indica si el elemento a buscar será encontrado en la parte superior o inferior del arreglo. Así se reduce el número de elementos buscados a la mitad del tamaño original. Después se aplican los mismos pasos para buscar el centro del arreglo. Finalmente si se recorre el arreglo completamente sin encontrar una coincidencia, la búsqueda no tuvo éxito. int binarySearch(Element_type *elements, int n, Element_type element) { int top, bot,mid,found; top=0; bot=n-1; found=0;
  • 11. 11 while (top<=bot && !found) { mid=(top+bot)/2; if(elements[mid]==element) found=1; else if(elements[mid]<element) top=mid+1; else bot=mid-1; } return found; }