Mostrando entradas con la etiqueta Algoritmos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Algoritmos. Mostrar todas las entradas

16 dic 2014

Algoritmos clásicos de ordenación en Java

 

Ordenación de vectores mediante algoritmos

Ordenación por intercambio

Ordenación por selección

Ordenación por el método de la burbuja




Ordenación de vectores mediante algoritmos

Ordenación por intercambio

Hace sucesivas pasadas, comprobando valores consecutivos. Si uno no es menor que el otro, se intercambian, con lo que se va ordenando parcialmente.  Se termina cuando en una pasada no se realiza ningún intercambio.

Inter= true;
while  (inter == true) { // mientras haya habido intercambio
            inter= false;
            for (i=0; i <= n-2; i++) {
                        if (t[i] > t[i+1]){
                                   aux= t[i];
                                   t[i] = t[i+1];
                                    t[i+1] = aux;
                                   inter= true;
                                   }
                        }
            }

 

Ordenación por selección

Se busca el mínimo, se intercambia con el primer elemento. Se repite el proceso con el resto de valores desordenados,  ubicando el segundo valor mínimo como el segundo de los ordenados, hasta que no existan valore desordenados.

for (k=0; k <= n-2; k++) { // buscamos el mínimo entre k y n
            indMin = k; //se toma el primero
            for (i=k           +1; i<=n-1; i++) {
                        if (t[i] < t[indMin]){
                                   indMin= i;        //nuevo mínimo
                                   }
            }
            aux = t[indMin];
            t[indMin] = t[k];
            t[k]= aux;
}

 

Ordenación por el método de la burbuja

Se trata de una ordenación por intercambio mejorada, ya que en cada iteración nos queda ordenado el último elemento, con lo que ya no es necesario llegar a ese elemento sino hasta el anterior.


for (i=0; i <= n-2; i++) {
            for (j=0; j <=  n-2 –i ; j++) {
                        if (t[j] > t[j+1]){
                                   aux = t[j];
                                   t[j] = t[j+1];
                                   t[j+1]= aux;
                                   }
            }
}

 

11 jul 2014

Algoritmo para el cálculo del Código Internacional de Cuenta Bancaria (IBAN)

IBAN (International Bank Account Number)

Código Internacional de Cuenta Bancaria. Es un código alfanumérico que sirve para identificar una cuenta bancaria a nivel internacional, regulado por las normas  ISO 13616 y EBS204. Se compone de como máximo 34 caracteres, aunque en España se utilizan 24.

De los 24 caracteres, los dos primeros corresponden al código del país, en España son ES. Los siguientes dos caracteres son de control y los 20 restantes son el CCC, código de cuenta de cliente.

Algoritmo para el cálculo de los dos dígitos del  IBAN

Los pasos que hay que dar para calcular los dos dígitos de control son:
·         Se añade al final del código de cuenta, el código de país y dos ceros.
·         Se transforma toda la secuencia en un número, sustituyendo las letras por números del 10 al 35, siendo la A el 10 y la Z el 35.
·         Se coge el resto de dividir el número obtenido entre 97.
·         Se resta a 98 el resto obtenido. Si el número es menor que 10 se añade un cero a la izquierda.

En el ejemplo anterior sería:
·         Partimos de 1234 5678 06 1234567890 ES00
·         1234 5678 06 1234567890 142800
·          12345678061234567890142800 resto 97 = 30
·         98 – 30 = 68

10 jul 2014

Algoritmo para el cálculo de los dígitos de control de las cuentas bancarias (CCC)

CCC: Código de Cuenta de Cliente.


Es un número de 20 dígitos, formado por 4 grupos de dígitos.

El primer grupo, de 4 dígitos, corresponde a la entidad bancaria. De ellos el primer dígito corresponde al tipo de entidad financiera: 0 Bancos, 1 Crédito Oficial, 2 Cajas de Ahorros, y 3 Cooperativas de Crédito como las Cajas Rurales.

El segundo grupo, de 4 dígitos, es el código de sucursal.

El tercer grupo, de 2 dígitos, es el código de control.

El cuarto grupo, de 10 dígitos, es el número de cuenta.

El código de control del tercer grupo, formado por dos dígitos, utiliza el primer dígito para verificar la entidad bancaria y la sucursal, y el segundo dígito para verificar el número de cuenta.
Para obtener el primer dígito de verificación de la entidad financiera y sucursal se obtiene a partir de los 8 dígitos de entidad y sucursal, pero añadiéndole 2 ceros a la izquierda para que sea un número de 10 dígitos. Ahora se multiplica cada dígito, en orden, por cada una de estos valores 1, 2,  4, 8, 5, 10, 9, 7, 3, 6 (que son los restos al dividir por 11 de las 10 primeras potencias de 2). Se suman todos los valores obtenidos, se divide el resultado entre 11 y se coge el resto. Si este resto obtenido es 0 o 1 ya habremos terminado, si no, se lo restamos a 11, y este es el valor buscado. En nuestro ejemplo sería:
0*1 + 0*2 + 1*4 + 2*8 + 3*5 + 4*10 + 5*9 + 6*7 + 7*3 + 8*6 = 231
231 resto 11 = 0

El dígito de verificación del número de cuenta, se calcula de forma similar, pero partiendo de los 10 dígitos de la cuenta.
1*1 + 2*2 + 3*4 + 4*8 + 5*5 + 6*10 + 7*9 + 8*7 +9*3 + 0*6 = 277
280 resto 11 = 5
11- 5 = 6
Por tanto los dígitos de control son 06.

28 mar 2014

Cálculo de la letra del DNI o del NIF

1.- Se toma la parte numérica del DNI

2.- Se obtiene el Resto de dividir por 23:

Resto = DNI mod 23

3.- Se suma 1 al Resto obtenido. Ahora el resultado variará entre 1 y 23. (Se podría haber seguido,  de igual forma, con valores entre 0 y 22).

4.- Se obtiene la letra según las equivalencias con el número obtenido de la siguiente tabla:

Resto
Letra
1
T
2
R
3
W
4
A
5
G
6
M
7
Y
8
F
9
P
10
D
11
X
12
B
13
N
14
J
15
Z
16
S
17
Q
18
V
19
H
20
L
21
C
22
K
23
E