Sie sind auf Seite 1von 15

Instituto Politécnico Nacional

Corrimiento
Algoritmos
Computacionales

MC Sergio Fuenlabrada Velázquez


Unidad Profesional Interdisciplinaria de MSI Edna Martha Miranda Chávez
Ingeniería y Ciencias Sociales y
Administrativas

“La técnica al
servicio de la patria”
• Uno de los factores que ha provocado el
desarrollo y crecimiento de las
computadoras es la confiabilidad en la
exactitud y seguridad de que los datos

Corrimiento
almacenados.
• En una estructura de datos secuencial
como es el caso de un arreglo, para
agregar o eliminar datos, se utiliza la
técnica de corrimiento, esta técnica
asegura confiabilidad en su contenido.
• Se define el arreglo o vector.
int arreglo [5]

• Se capturan los datos en el arreglo, para


facilitar la comprensión de esta técnica se

Corrimiento
toma un ejemplo en el cual lo datos se
encuentran ordenados
cin>>arreglo[i]

arreglo

3 7 9 12 Apuntadores o
0 1 2 3 4
Punteros
Corrimiento a la derecha
Agregar

4
Corrimiento a la derecha - Agregar

Se utiliza para agregar un dato en el arreglo

Corrimiento a la Derecha
Ejemplo:
• Imagine que se requiere agregar el numero 8
en el arreglo definido anteriormente
arreglo
3 7 9 12 Apuntadores o
0 1 2 3 4
Punteros
• De tal forma que el resultado debe ser:

3 7 8 9 12 Apuntadores o
0 1 2 3 4
Punteros
Corrimiento a la derecha - Agregar
Procedimiento:
for (k=0 …..
1.- Agregar el numero a ingresar if (numero <arreglo[i])

Corrimiento a la Derecha
{ parar = i;}
cin>>numero
2.- Identificar el lugar en donde debe colocarse el numero a ingresar.
Se compara el numero a agregar con cada uno de los elementos
en el arreglo, en el momento que se detecte que el numero a
agregar es menor al número contenido en el arreglo se sabe que
es el lugar que debe ocupar el numero ingresado

arreglo 3 7 9 12 Apuntadores o
0 1 2 3 4
¿El 8 es Punteros
menor que 3?

8 ¿El 8 es
menor que 7?
numero ¿El 8 es
menor que 9? Por lo tanto este es el lugar que debe
ocupar el número ingresado
Corrimiento a la derecha - Agregar
3.- Corrimiento a la derecha
o Se inicia con la última posición “n”
o Se copia el contenido de la posición “n” a n+1
o Se repite hasta llegar a la posición identificada en donde se debe

Corrimiento a la Derecha
colocar el numero ingresado.

arreglo 3 7 9 12
0 1 2 3 4
8 1
numero
2

for (j=n; j>parar; j--)


{
arreglo [j+1] = arreglo[j];
}
Corrimiento a la derecha - Agregar
3.- Corrimiento a la derecha

Corrimiento a la Derecha
arreglo for (j=n; j>parar; j--)
3 7 9 12 {
0 1 2 3 4 arreglo [n] = arreglo[n+1];
}

Pasada 1
3 7 9 12 12 overflow
0 1 2 3 4

Pasada 2
3 7 9 9 12
0 1 2 3 4
Corrimiento a la derecha - Agregar
4.- Una vez hecho el espacio, se copia el numero ingresado en la
posición identificada en donde debe de ir.

Corrimiento a la Derecha
arreglo 3 7 9 9 12
0 1 2 3 4
8
numero

arreglo [parar] = numero;

3 7 8 9 12
0 1 2 3 4
Corrimiento a la izquierda
Eliminar

10
Corrimiento a la izquierda - Eliminar
Procedimiento:
for (k=0; …..
1.- Eliminar un numero dentro del arreglo if (numero == arreglo[i])

Corrimiento a la Izquierda
{
cin>>numero
eliminar = i;
2.- Identificar el numero a eliminar }
Se compara el numero a eliminar con cada uno de los elementos
en el arreglo, en el momento que se detecte el numero (es igual
a ) se detiene la comparación

arreglo 3 7 8 9 12 Apuntadores o
0 1 2 3 4
¿El 7 es Punteros
igual a 3?

7 ¿El 7 es
igual a 7?
numero
Por lo tanto éste es el numero a eliminar
Corrimiento a la izquierda - Eliminar
3.- Corrimiento a la izquierda
o Se inicia con la posición identificada como “eliminar”
o Se copia el elemento anterior en la posición a “eliminar”

Corrimiento a la Izquierda
o Se repite hasta llegar al final del arreglo.

arreglo 3 7 8 9 12
0 1 2 3 4
7 3
2
numero
1

for (j=parar; j<n; j++)


{
arreglo [j] = arreglo[j+1];
}
Corrimiento a la Izquierda - Eliminar
3.- Corrimiento a la derecha
arreglo
3 7 8 9 12

Corrimiento a la Izquierda
0 1 2 3 4
for (j=parar; j<n; j++)
{
Pasada 1
3 8 8 9 12 arreglo [j] = arreglo[j+1];
}
0 1 2 3 4

Pasada 2
3 8 9 9 12
0 1 2 3 4

Pasada 3
3 8 9 12 12
0 1 2 3 4
Corrimiento a la Izquierda - Eliminar
4.- Para borrar la basura se puede mover Nulos a la última posición
arreglo

Corrimiento a la Izquierda
3 8 9 12 12
0 1 2 3 4

arreglo [n] = ‘\0’;

3 8 9 12
0 1 2 3 4
• Sznajdleder Pablo, Algoritmos a fondo, Editorial
Alfaomega,México 2012.

• Baase Sara, Van Gelder Allen, Algoritmos computacionales,


Introducción al análisis y diseño, Editorial Addison Wesley,
Tercera edición, México 2002, págs. 686, ISBN 970-6-0142-8.

BIBLIOGRAFÍA
• Brassard G., Bratley P., Fundamentos de Algoritmia, Editorial
Prentice Hall, México 1997, págs. 608, ISBN 84-89660-00-X.

• López Gustavo, Jeder Ismael, Vega Augusto, Análisis y Diseño de


Algoritmos, Implementación en C y Pascal, Editorial Alfaomega,
México 2009, págs. 309, ISBN 978-987-23113-9-1.

• Sisa Alberto Jaime, Estructura de datos y algoritmos, con énfasis


en programación orientada a objetos, Editorial Prentice Hall,
México 2002, págs. 310, ISBN 958-699-044-3.

15

Das könnte Ihnen auch gefallen