(VB6) algorithme de recherche

algorithme de recherche (VB6) - Programmation

Marsh Posté le 05-03-2002 à 06:19:49    

Salut
 
1 : je debute en VB depuis 3 mois
2 : j'ai un probleme
 
alors voila, j'ai deux fichiers ASCII: un avec 75000 enregistrement d'arc avec deux numero de noeuds et un avec 47000 enregistrement de numero de noeuds et leurs coordonnées x, y . Mon but est d'extraire les coordonnées des noeuds correspondant à tout les arcs que j'ai selectionné ( svt plus de 10000 ds mon programme ).
Pitié  :sweat: , si kelkun a des exemples d'algorithmes de recherche ou bien des liens, ce serait bien urbain vu que pour l'instant,j'arrive à extraire mes noeuds mais c'est douloureux ( au debut : j'arretais tt à 10 minutes mais maintenant, je suis à 5-8 min, tjr médiocre ), je risque de vite vieillir si j'arrive pas à optimiser à mort ma recherche. :jap:  
 
merci à celui qui pourra m'aider ;)


---------------
Pour qu'il y ait le moins de mécontents possibles, il faut toujours taper sur les mêmes ...
Reply

Marsh Posté le 05-03-2002 à 06:19:49   

Reply

Marsh Posté le 05-03-2002 à 11:06:40    

Je te balances en vrac les idees que ca m'inspire en me basant sur une vision plus C++(sachant que je suis pas un pro du VB):
 -si ce n'est pas fait essaye de transformer tes coordonnees (x,y) en entier si c'est possible par un redimensionnement du probleme : le stockage des int est moins gourmand -> tu gagnes en rapidite.
 -ca vaut peut-etre le coup de bufferiser l'acces aux fichiers de donnees plutot que de relire a chaque fois sur le disque : ca peut payer si tu effectue beaucoup de lecture dans tes tables et si ta RAM est suffisamment consequente(cf point d'avant)
 -programme en autre chose que du VB :) : ca depend des specs qui te sont imposees mais pour un algorithme aussi gourmand, ca vaut le coup de coder la rechercher en C.
Je crois que l'interfacage est relativement simple...
 -Tu peut aussi creer une table de liaison entre les 2 fichiers de facon statique(pre-traitement) qui n'aura besoin d'etre actualiser que lorsque tu modifies tes fichiers.
Tout depend de l'objectif a atteindre et des specs qu ite sont imposees...
 
Si tu pouvait donner le type de parcours que tu effectues et le but de ce trie ca pourrait peut-etre me donner d'autres idees :)

Reply

Marsh Posté le 05-03-2002 à 18:25:44    

je fait un programme ou je dois afficher tout le reseau routier des municipalités choisies par l'usager. J'ai trois fichier ascci : un avec nom et id des muni ; un avec id muni, id arc, id neud de depart, id neud de fin ; un avec id neud et coordonnées x et y non décimales ( coordonnées en metres ).
 
Donc voila, vu ke cé un cours de vb, ce serait pas judicieux de le fair sous C. A partir des noms de muni selectionnés, je vais extraire tt les noeuds correspondants aux arc de la muni et j'affiche le reseau routier.
Je charge tt cela ds des tableaux et pour mon algorithme, pour l'instant, j'en ai dégoté un où à partir des Id des noeuds du fichier arc, je vais chercher ds les coordonnées ds le fichier noeud en divisant le fichier tjr par deux. Je verifie si le neud est inferieur ou superieur à cette moitié. Si inf, je redivise la partie inferieur et inverse pour la partie sup si il est superieur. Et ainsi de suite. Normalement, pour chaque noeud, je pointe dessus en moins de 20 fois.  
 
SI kelkun a un truc plus efficace ou bien un algorithme de recherche qui déchire tt.
 
Merci pour la réponse.:jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed