Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1447 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#] Recherche dans un tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C#] Recherche dans un tableau

n°1555347
Jericho
Posté le 04-05-2007 à 14:29:13  profilanswer
 

Bonjour,  
 
Je m'en remets à vous car je pense que je vais devenir dingue  :pt1cable:  
 
Je dois effectuer une simple recherche dans un tableau et si dans ce tableau il y a deux nombres égaux, une variable retient la valeur qui est égale et c'est tout...
 
Donc en gros, je peux avoir un tableau du genre : 3 2 3 4 2 5 6 6 7
 
Et ma valeur retournée serait 3 (la première valeur en double).
 
Voici mon code :  
 
Mon tabpaire est composé de valeurs aléatoires.
 

Code :
  1. for (i = 0; i <= tabpaire.Length; i++)
  2.             {
  3.                 for (j=i+1; j < tabpaire.Length; j++)
  4.                 {
  5.                     if (tabpaire[i] == tabpaire[j])
  6.                     {
  7.                         paire = tabpaire[i];
  8.                     }
  9.                 }
  10.             }


 
Merci d'avance pour votre aide!  :jap:

mood
Publicité
Posté le 04-05-2007 à 14:29:13  profilanswer
 

n°1555350
Taz
bisounours-codeur
Posté le 04-05-2007 à 14:31:30  profilanswer
 

là t'es en O(n2 / 2). Si tu tries ensuite recherche deux valeurs consécutives égales, tu pourrais taper du O(nlogn + n/2) donc bien mieux.

n°1555379
Jericho
Posté le 04-05-2007 à 14:47:45  profilanswer
 

Merci pour ta réponse!
 
J'ai essayé ça :  
 

Code :
  1. for (i = 0; i < tabpaire.Length - 1; i++)
  2.             {
  3.                 for (j = 0; j < tabpaire.Length - 1 - i; j++)
  4.                 {
  5.                     if (tabpaire[j + 1] < tabpaire[j])
  6.                     {
  7.                         tmp = tabpaire[j];
  8.                         tabpaire[j] = tabpaire[j + 1];
  9.                         tabpaire[j + 1] = tmp;
  10.                     }
  11.                 }
  12.             }
  13.             for (i = 0; i < tabpaire.Length - 1; i++)
  14.             {
  15.                 if (tabpaire[i] == tabpaire[i + 1])
  16.                 {
  17.                     paire = tabpaire[i];
  18.                 }
  19.             }


 
Mais il trouve des "paires" la ou il n'y en a pas parfois  :heink:

n°1555492
Taz
bisounours-codeur
Posté le 04-05-2007 à 17:26:57  profilanswer
 

tu veux pas essayer la méthode plus rapide et plus simple que je te conseille ?

n°1555503
Jericho
Posté le 04-05-2007 à 18:17:33  profilanswer
 

Bah c'est ce que je fais!
 
Bubble sort puis recherche de deux nombres consécutifs...

n°1555570
MagicBuzz
Posté le 04-05-2007 à 21:26:01  profilanswer
 

à moins que je ne sois complètement fou, ton bubble sort à une drôle de touche... et je vois pas trop ce que fait ta boucle extérieure :heink:
 
sinon, pkoi ne pas détecter le doublon pendant l'algo de tri ?
ça évite de trier jusqu'au bout, et de reparcourir le array ensuite.
 
par contre, evidement ton array est trié n'importe comment à la fin mais bon :D

n°1556636
Jericho
Posté le 07-05-2007 à 17:46:10  profilanswer
 

Bon, j'ai refais des tests et mon tableau est très bien trié...
 
Mon problème est donc de trouver deux entiers consécutifs dans un tableau trié.
 
Voici le code que j'ai fait :  
 

Code :
  1. for (i = 0; i < tabpaire.Length-1 && bol == 0; i++)
  2.             {
  3.                 if (tabpaire[i] == tabpaire[i + 1])
  4.                 {
  5.                     paire = tabpaire[i];
  6.                     bol = 1;
  7.                 }
  8.             }


 
Mais ca ne fonctionne pas bien : il me trouve parfois le bon nombre, parfois il n'en trouve pas alors qu'il y en a et parfois il en invente...
Quelqu'un a une idée lumineuse?  :pt1cable:

n°1557213
MagicBuzz
Posté le 09-05-2007 à 10:37:30  profilanswer
 

déjà, au lieu de jouer avec "bol", colle un break dans le if, ce sera plus propre.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#] Recherche dans un tableau

 

Sujets relatifs
Recherche codeur c++ -> server Rose Online[JSP] créer tableau dynamique en servlet
insertion dans un tableauRecherche multiple avec strpos
Recherche alphabétique (petit problème avec les chiffres)Moteur de recherche avec synonymes
recherche d une valeur et copie sous excelPb pour désérialiser un double tableau
alignement vertical cellules html [tableau]Pseudo tableau en CSS
Plus de sujets relatifs à : [C#] Recherche dans un tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR