Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
BURBUJA
P=1
SW = 0
P ++ SI SW = 1 Vector ordenado NO
Fin
C++ Arrays
b) Ordenacin por intercambio con intervalos decrecientes. MTODO SHELL Este mtodo compara elementos no contiguos, y separados a una gran distancia. Si los elementos no estn en orden se intercambian. El algoritmo comienza especificando un intervalo o salto grande, normalmente la mitad del tamao del vector, comparando elementos separados por este intervalo y se intercambian si es necesario. A continuacin se divide el intervalo por dos y se repite el proceso. Al finalizar el recorrido del vector, el intervalo es 1 y la ordenacin funciona exactamente como la ordenacin por burbuja. Variables: N es el nmero de elementos Salto es el intervalo de comparacin I es el ndice de los elementos del vector. AUX se utiliza para los intercambios SW: interruptor SW = 0 no ha habido cambios y SW = 1 ha habido cambios
C++ Arrays
SALTO = N
Vector ordenado
SW = 0
SI SW = 1 NO
C++ Arrays
c) Bsqueda de un elemento en un vector desordenado. Bsqueda Secuencial Variables: N es el nmero de elementos Num es el nmero a buscar I es el ndice de los elementos del vector. SW: interruptor SW = 0 no ha habido cambios y SW = 1 ha habido cambios
BUSQUEDA SECUENCIAL
NUM
NO NUM <> 0
SI
Fin
SW = 0
NO I < N AND SW = 0 SI SW = 1
SI
V(I) = NUM
SI
SW = 1
NUM
C++ Arrays
d) Bsqueda de un elemento en un vector ordenado. Bsqueda Binaria o Dicotmica Variables: N es el nmero de elementos Num es el nmero a buscar Pri es una variable que controla el primer elemento del vector y de los sucesivos subvectores Ult es una variable que controla el ltimo elemento del vector y de los sucesivos subvectores. Cen es una variable que controla el elemento central del vector con el que vamos a comparar NUM y a partir del cual hacemos las sucesivas divisiones del vector SW: interruptor SW = 0 no ha habido cambios y SW = 1 ha habido cambios
C++ Arrays
BUSQUEDA DICOTOMICA
NUM
NO
Fin
SI
NUM no existe
NUM encontrado posicin I NUM >V(Cen) Ult = Cen - 1 NUM Pri = Cen + 1
SI V(Cen) = NUM SW = 1
C++ Arrays
C++ Arrays
FUSION I = 0, J = 0, P = 0
NO NO I<N Z=J Z<M Z++ CodF(P) = CodB(Z) CantF(P) = CantB(Z) P++ Z<N Z++ SI
SI
CodA(I) = CodB(J)
SI
Z=I
NO
SI
FIN
C++ Arrays
f) Rupturas de control.
En 2 vectores NAR y VENTAS estn almacenados los cdigos y las ventas de los productos durante el da. Puede haber ms de un registro para un mismo artculo, pero todos ellos, estn uno detrs del otro. Se desea hacer un programa que liste todas las ventas realizadas durante el da de tal forma que cada producto solo aparezca una vez. Variables: N nmero de elementos del primer vector I ndice del primer vector P ndice del vector final fusionado NAR vector que guarda los cdigos. VENTAS vector que guarda las ventas de cada articulo CodF vector que guarda los cdigos sin repetir CantF vector que guarda la cantidad total de cada artculo
C++ Arrays
I=1 I<N
I++
SI
FIN
C++ Arrays
10
C++ Arrays
11
INTRODUCIR DATOS VECTOR SIN VALORES REPETIDOS N=0 Nom NO Nom <> \0 I = 0, SW = 0 FIN NO SW = 1 Nombre(N) = Nom N++ Nom Ya Existe NO I<N and SW =0 SI NO Nom = Nombre(I) \0 I++ SW = 1 SI SI SI
Nom
C++ Arrays
12
C++ Arrays
13
ELEMENTOS
VECTOR
ORDENADO
NO
Num <> 0
FIN
NO SW = 1
SI
Vector(N) = Num
Vector(I) = Num
N++ Num
C++ Arrays
14
Acceso a los elementos de Arrays bidimensionales mediante bucles Variables: FILAS es el nmero de filas de la matriz COLUMNAS es el nmero de columnas de la matriz f es el ndice de las filas de la matriz. c es el ndice de las columnas de la matriz
Creacin de arrays multidimensionales
Matriz[f][c]
Matriz[f][c]
Salto lnea
Fin
C++ Arrays
15
Suma de las filas y columnas de Arrays bidimensionales Variables: FILAS es el nmero de filas de la matriz COLUMNAS es el nmero de columnas de la matriz f es el ndice de las filas de la matriz. c es el ndice de las columnas de la matriz sumaf es la variable que guarda la suma de cada fila sumac es la variable que guarda la suma de cada columna
C++ Arrays
16
Sumaf = 0
Sumaf += Matriz[f][c]
sumaf
c=0 c < COLUMNAS c++ Sumac = 0 f=0 f < FILAS f++ Sumac += Matriz[f][c]
sumac
Fin
C++ Arrays
17
Suma de las filas y columnas de Arrays bidimensionales guardando los valores en arrays Variables: FILAS es el nmero de filas de la matriz COLUMNAS es el nmero de columnas de la matriz f es el ndice de las filas de la matriz. c es el ndice de las columnas de la matriz sumaf[ ] es un vector que guarda la suma de las filas sumac[ ] es un vector que guarda la suma de las columnas
C++ Arrays
18
Sumaf[f] += Matriz[f][c]
Sumaf[f]
Sumac[c]
Fin
C++ Arrays
19