You are on page 1of 36

Facultad de Ingeniería y Arquitectura

ARREGLOS 
UNIDIMENSIONALES Y BIDIMENSIONES

Estructura de Datos ‐
Inteligencia de Negocios   ‐
Patricia  Uceda
Patricia  Uceda
Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Arreglos (Arrays)
Arreglos (Arrays)
Facultad de Ingeniería y Arquitectura

Un array es una colección de elementos del mismo tipo que se


referencian usando un mismo nombre y que ocupan posiciones
contiguas de memoria
memoria.
Para acceder a un elemento específico se usan los subíndices. Un
array puede tener una o más dimensiones.

2
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Arreglos Unidimensionales
Arreglos Unidimensionales
Facultad de Ingeniería y Arquitectura

También llamado vector, lista o matriz


unidimensional es un array cuyos elementos pueden
ser referenciados completamente con un solo
subíndice.
.
.
Declaración de un Array
.
Unidimensional (Vectores)
X[3] 123
En la
E l d
declaración
l ió dde un array se debe
d b iindicar
di
el tipo de dato de todos los elementos del X[2] -12
array, puede ser cualquier tipo excepto void. [ ]
X[1] 0
X[0] 50
Tipo NombreArray[tamaño]

3
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Arreglos Unidimensionales o Vectores Facultad de Ingeniería y Arquitectura

Ejemplo:

int x[9];
.
int y[ ]={50, 0, -12, 123};
.
int abc[50]; .
Declara un array llamado abc que puede
X[3] 123
contener
t como máximo
á i 50 elementos
l t X[2] -12
12
cada uno de tipo entero;
X[1] 0
constante,
t t ya sea escribiéndolo
ibié d l didirectamente
t t o X[0] 50
definiendo mediante la directiva define, nunca
debe ser una variable (o sea escribir int x[i];
estará mal).
4
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Uso de los Arreglos
Uso de los Arreglos
Facultad de Ingeniería y Arquitectura

¾ Ingreso de Elementos
¾ Impresión de Elementos
¾ Búsqueda de Elementos
¾ Inserción de Elementos
¾ Modificación
M difi ió de
d Elementos
El t
¾ Eliminación de Elementos
¾ Ordenamiento de Elementos

5
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Ingreso de Elementos
Ingreso de Elementos
Facultad de Ingeniería y Arquitectura

Int X[7]; Cuanto vale n ?


#include<iostream.h>
X[6] 12 void IngresoArray(int , int[] );
void main(void)
X[5] 15 { int x[10], n;
cout<<"Ingrese
cout<< Ingrese cantidad de
X[4] 10
elementos de la lista ";
X[3] 123 cin>>n;
IngresoArray(n,x);
X[2] -12 }
void IngresoArray(int n, int x[])
X[1] 0
{ int i;
X[0] 50 for (i=0; i<n; i++)
{ cout<<"Elemento "<<i<<":";
[ ];
cin>>x[i];
}
} 6
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Impresión de Elementos
Impresión de Elementos
Facultad de Ingeniería y Arquitectura

X[6] 12
X[ ]
X[5] 1
15
for (i=0; i<n; i++)
X[4] 10
{
X[3] 123 cout<<"Elemento "<<i<<":"<<x[i]<<endl;
X[2] -12
X[1] 0 }
X[0] 50

7
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Búsqueda de Elementos
Búsqueda de Elementos
Facultad de Ingeniería y Arquitectura

X[6] 12 Compara Si ( x[i] ==valor )


X[ ]
X[5] 1
15 Ejemplo Valor = 10;
X[4] 10
X[3] 123 if ( x[i] == valor )
X[2] -12 { pos=i;
X[1] 0 }
X[0] 50

Lo Encontré en la Posición 4
8
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
#include<iostream.h>
void IngresoArray( int, intFacultad de Ingeniería y Arquitectura
[]);
void BusquedaValor(int,
BusquedaValor(int int []);
void main(void)
{ int x[10], n;
cout<<"Ingrese
cout<< Ingrese cantidad de elementos de la lista ";; cin>>n;
IngresoArray(n,x);
BusquedaValor(n,x); }
void IngresoArray(int n, int x[])
{ for (int i=0; i<n; i++)
{ cout<<"Elemento "<<i<<":";
cin>>x[i]; [ ]; }
}
void BusquedaValor(int n, int x[])
{ int pos, valor, band=0;
cout<<"Ingrese valor a buscar "; cin>>valor;
for (int i=0; i<=n; i++)
{ if (x[i]==valor)
{ pos=i;
band=1; } }
if (band==1)
cout<<"Valor
t "V l encontrado t d en la l posicion:
i i "
"<<pos<<endl; dl
else
cout<<"Valor No encontrado : "<<endl; }
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
9
Inserción de Elementos
Inserción de Elementos
Facultad de Ingeniería y Arquitectura

I
Insertar
t en X[3],
X[3] ell valor
l 100
int X[LIM];
... ... X[7] 12

X[6] 12 X[6] 12
15
X[5] 15 X[5] 15
10
X[4] 10 X[4] 10
-123 100
X[3] 123 X[3] -123
X[2] -12 X[2] -12
for ( i=n; i>pos; i--)
X[1] 0 X[1] 0 x[i]=x[i-1];
X[0] 50 X[0] 50 x[pos]=valor;
[p ]

10
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
#include<iostream.h>
void IngresoArray( int, intFacultad de Ingeniería y Arquitectura
[]);
void InsercionArray(int,
InsercionArray(int int []);
void ImprimeArray(int n, int x[]);
void main(void)
{ int x[10], n;
cout<<"Ingrese cantidad de elementos de la lista "; cin>>n;
IngresoArray(n,x);
InsercionArray(n,x);
ImprimeArray(n x); }
ImprimeArray(n,x);
void IngresoArray(int n, int x[])
{ for (int i=0; i<n; i++)
{ cout<<"Elemento "<<i<<":";
cin>>x[i]; }
}
void InsercionArray(int n, int x[])
{ int pos,
pos valor,
valor i;
cout<<"Ingrese posición a insertar "; cin>>pos;
cout<<"Ingrese valor a insertar "; cin>>valor;
for (i=n; i>=pos; i--)
x[i]=x[i-1];
x[pos]=valor; }
void ImprimeArray(int n, int x[])
{ for (int i=0; i<=n; i++) //Un elemento adicional
cout<<"Elemento "<<i<<":"<<x[i]<<endl;
}
UPN Cajamarca 11
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Si se ingresan n+1 elementos
Facultad de Ingeniería y Arquitectura

#include<iostream.h>
void main(void)
{ i
int x[9], i, n, pos, valor;
[9] i l
cout<<"Ingrese cantidad de elementos de la lista ";
cin>>n;
for (i=0; i<=n; i++)
{ cout<<"Elemento "<<i<<":";
cin>>x[i];
}
cout<<"Ingrese posición a insertar "; cin>>pos;
cout<<"Ingrese valor    a insertar   ";  cin>>valor;
"I l i " i l
for (i=n+1;  i>=pos; i‐‐)
{   x[i]=x[i‐1];
}
x[pos]=valor;
for (i=0; i<=n+1; i++)
for (i=0; i<=n+1; i++)
cout<<"Elemento "<<i<<":"<<x[i]<<endl;
UPN Cajamarca
}Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/201112
Modificación de Elementos
Modificación de Elementos
Facultad de Ingeniería y Arquitectura

Para la modificación, debemos encontrar el elemento y


después reemplazarlo (Se busca por posición o valor)

Compara Si ( x[i] ==valor )


X[6] 12
X[5] 15 if ( x[i] == valor )
{ x[i]=NuevoValor;
X[4]
[ ] 10
}
X[3] 123
X[2] -12
12 if ( i == pos )
X[1] 0 { x[i]=NuevoValor;
X[0] 50 }
13
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
#include<iostream.h>
void IngresoArray ( Facultad de Ingeniería y Arquitectura
int, int []);
void ModificacionArray( int, int []);
void ImprimeArray ( int, int []);
void main(void)
{
int x[10], n;
cout<<"Ingrese cantidad de elementos de la lista ";
cin>>n;
IngresoArray(n,x);
M difi
ModificacionArray(n,x);
i A ( )
ImprimeArray(n,x);
}
void IngresoArray(int n, int x[])
{ for (int i=0; i<n; i++)
{ cout<<"Elemento "<<i<<":";;
cin>>x[i];
}
}

14
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
void ModificacionArray(int n, int x[])
{ int Valor, NuevoValor,Facultad de Ingeniería y Arquitectura
band=0, pos, i;
cout<<"Ingrese valor a modificar ";
cin>>Valor;
cout<<"Ingrese Nuevo valor";
cin>>NuevoValor;
for (i=0; i<n; i++)
if (x[i]==Valor){
x[i]=NuevoValor;
pos =i;
band=1;
}
if (band==1)
cout<<"Valor encontrado en la p posicion: "<<pos<<endl;
p
else
cout<<"Valor No encontrado : "<<endl;

}
void ImprimeArray(int n, int x[])
{ for ((int i=0;; i<n;; i++)) //
//Un elemento adicional
cout<<"Elemento "<<i<<":"<<x[i]<<endl;
} 15
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Eliminación de Elementos
Eliminación de Elementos
I t X[7];
Int X[7] Eli i
Eliminar en X[3]
X[3], ell valor
l -123
123

X[6] 12 X[6] 12
12
X[5] 15 X[5] 15
15
X[4] 10 X[4] 10
10 Pos x[3]
X[3] 123 X[3] -123

X[2] -12 X[2] -12


X[1]
[ ] 0 X[1]
[ ] 0
X[0] 50 X[0] 50

for (i
(i=pos;
pos; i<n; i++)
x[i]=x[i+1]; 16
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
#include<iostream.h>
void IngresoArray
g y ( int, , int []);
Facultad de Ingeniería y Arquitectura

void EliminacionArray( int, int []);


void ImprimeArray ( int, int []);
void main(void)
{ int x[10], n;
cout<<"Ingrese cantidad de elementos de la lista "; cin>>n;
IngresoArray(n,x);
EliminacionArray(n x);
EliminacionArray(n,x);
ImprimeArray(n,x);
}
void IngresoArray(int n, int x[])
{ for (int i=0; i<n; i++)
{ cout<<"Elemento "<<i<<“:”; cin>>x[i]; }
}
void EliminacionArray(int n, int x[])
{ int pos, i;
cout<<"Ingrese posicion del valor a eliminar "; cin>>pos;
for (i=pos;
(i pos; i<n; i++)
x[i]=x[i+1];
}
void ImprimeArray(int n, int x[])
{ for (int i=0; i<n-1; i++) //Un elemento adicional
cout<<"Elemento "<<i<<":"<<x[i]<<endl; } 17
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Ordenamiento de Elementos
Ordenamiento de Elementos Facultad de Ingeniería y Arquitectura

Métodos de Ordenamiento
Métodos de Ordenamiento

• Burbuja
• Selección
• Inserción
• Quick Sort
Quick Sort
• Shell
18
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Código en C++
Código en C++
Facultad de Ingeniería y Arquitectura

void Burbuja(int n, float x[ ])


{ int i,j;
i j;
float temp;
for (i=1; i<n; i++)
for ( j=n-1; j>=i; j--)
if ( x[j-1] > x[j] )
{ temp
t = x[j-1];
[j 1]
x[j-1] = x[j];
x[j] = temp;
}
}

19
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Método de Ordenamiento Burbuja
Método de Ordenamiento Burbuja

5 10 2 8 K A
♠ ♦ ♣ ♥ ♠ ♥
20
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Método de Ordenamiento Burbuja
Método de Ordenamiento Burbuja

5 10 2 8 A K
♠ ♦ ♣ ♥ ♥ ♠
21
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Método de Ordenamiento Burbuja
Método de Ordenamiento Burbuja

5 10 2 A 8 K
♠ ♦ ♣ ♥ ♥ ♠
22
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Método de Ordenamiento Burbuja
Método de Ordenamiento Burbuja

5 10 A 2 8 K
♠ ♦ ♥ ♣ ♥ ♠
23
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Método de Ordenamiento Burbuja
Método de Ordenamiento Burbuja

5 A 10 2 8 K
♠ ♥ ♦ ♣ ♥ ♠
24
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Método de Ordenamiento Burbuja
Método de Ordenamiento Burbuja

A 5 10 2 8 K
♥ ♠ ♦ ♣ ♥ ♠
25
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Método de Ordenamiento Burbuja
Método de Ordenamiento Burbuja

A 5 10 2 8 K
♥ ♠ ♦ ♣ ♥ ♠
26
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Método de Ordenamiento Burbuja
Método de Ordenamiento Burbuja

A 5 2 10 8 K
♥ ♠ ♣ ♦ ♥ ♠
27
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Método de Ordenamiento Burbuja
Método de Ordenamiento Burbuja

A 2 5 10 8 K
♥ ♣ ♠ ♦ ♥ ♠
28
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Método de Ordenamiento Burbuja
Método de Ordenamiento Burbuja

A 2 5 10 8 K
♥ ♣ ♠ ♦ ♥ ♠
29
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Método de Ordenamiento Burbuja
Método de Ordenamiento Burbuja

A 2 5 8 10 K
♥ ♣ ♠ ♥ ♦ ♠
30
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Método de Ordenamiento Burbuja
Método de Ordenamiento Burbuja

A 2 5 8 10 K
♥ ♣ ♠ ♥ ♦ ♠
31
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Método de Ordenamiento Burbuja
Método de Ordenamiento Burbuja

A 2 5 8 10 K
♥ ♣ ♠ ♥ ♦ ♠
32
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Método de Ordenamiento Burbuja
Método de Ordenamiento Burbuja

A 2 5 8 10 K
♥ ♣ ♠ ♥ ♦ ♠
33
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura
Método de Ordenamiento Burbuja
Método de Ordenamiento Burbuja

A 2 5 8 10 K
♥ ♣ ♠ ♥ ♦ ♠
Felicitaciones!!! Cartas ordenadas por burbuja
34
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura

void Burbuja(int n, float x[ ])


{ int i,j;
float temp;
for (i=1; i<n; i++)
for ( j=n-1;
j n 1; j>=i;
j> i; j--)
j )
if ( x[j-1] > x[j] )
{ temp = x[j-1];
x[j-1] = x[j];
x[j] = temp;
}
}

35
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011
Facultad de Ingeniería y Arquitectura

Otra Forma:

for ((i=1;; i<TAM;; i++))


for (j=0 ; j<(TAM - 1); j++)
if (lista[j] > lista[j+1])
{
t
temp = lista[j];
li t [j]
lista[j] = lista[j+1];
lista[j+1] = temp;
}
36
Inteligencia de Negocios   ‐ Patricia  Uceda Martos    pum@comunidad.upn.edu.pe                                                          28/03/2011

You might also like