Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 23-12-2008
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
Algoritmo para comparar dos listas de valores
Las listas pueden ser en tablas, listas, cualquier cosa, lo unico que hay que hacer es adecuar el código al caso que proceda.A saber, si es una lista aumentar en uno el contador y si es una tabla leer el siguiente registro.

Importante: Las listas deben estar ordenadas por el mismo valor, que es el que se compara

Código Delphi [-]
1.- Poner las listas en su primer elemento
2.- Comparar los elementos
    A.- Son iguales ? El valor leido está en las dos listas
                           Actuar en consecuencia.
                           Coger los siguientes valores de las dos listas.

    B.- el valor de la lista 1 es menor? El valor de la lista 1 sólo se encuentra en la primera lista.
                                                  Actuar en consecuencia.
                                                  coger el elemento siguiente de la primera lista
    C.- el valor de la lista 2 es menor? El valor de la lista 2 sólo se encuentra en la segunda lista.
                                                  Actuar en consecuencia.
                                                  coger el elemento siguiente de la segunda lista
    D.- Si no se han acabado las listas, Volver a iterar el punto 2
    E.- Si se ha acabado alguna de las listas ,iterar leyendo siempre de la que no ha acabado. Se actúa como si la que no ha acabado es menor el valor.
3.- Ya está

Este procedimiento asegura un par de cosas.
1.- Se tratan todos los elementos.
2.- Se optimiza al máximo los accesos, ya que sólo se lee una vez cada elemento de las listas.

Este procedimiento seguro que lo conocen aquellos que han trabajado con ficheros secuenciales, es decir, los mayores de 38/40 años, ya que se utilizaba a menudo en programas cobol con ficheros secuenciales. Yo los hacía con lápiz y papel, que en definitiva, es como mejor se aprende.De primero de informática de los años 70-80.
CONCLUSIÓN: Si los elementos son iguales, se lee de las dos listas. Si son distintos, siempre se lee de la lista del elemento menor.

Un pequeño juego de ensayo quizás ayude a comprenderlo

Código SQL [-]
Lista1      Lista2
1            1      
2            3
4            5
5            6
6
Iteraciones
1 - 1 -> Iguales se leen las dos listas
2 - 3 -> menor el de la lista 1, el 2 no está en la lista 2, se lee de la lista 1.
4 - 3 -> menor el de la lista 2, el 3 no está en la lista 1. leo de la lista 2
4 - 5 -> menor el de la lista 1, el 4 no está en la lista 2, leo de la lista 1
5 - 5 -> iguales, el 5 está en las dos listas, se lee de las dos listas
6 - 6 -> iguales, el 6 está en las dos listas, se lee de las dos listas
FIN

Espero que os sea de ayuda

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Algoritmo para comparacion de cadenas danilo_candales Varios 8 17-11-2007 17:23:14
Ayuda para hacer una busqueda radije MySQL 0 30-04-2007 10:19:22
Algoritmo de búsqueda fonética Alexander Varios 2 13-10-2004 00:47:32
Buena codigo para hacer una busqueda edwin1 OOP 2 12-09-2003 20:35:00
hacer una comparacion con null oesteve Conexión con bases de datos 1 18-06-2003 15:08:34


La franja horaria es GMT +2. Ahora son las 17:53:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi