Est-ce qu'il existe, sous Delphi 5, une instruction pour trier un tableau ?
Merci.
Est-ce qu'il existe, sous Delphi 5, une instruction pour trier un tableau ?
Merci.
Salut,
Tu peux trouver ici dans la Faq :http://castelain.developpez.com/sources/TriStringGrid/
un exemple de code qui trie une StringGrid suivant le contenu d'une de ses colonnes avec QuickSort, c'est facilement modifiable pour trier un tableau.
En fait c'est quoi ton tableau car si c'est un tableau d'une seule colonne avec du texte c'est plus simple d'utiliser une StringList et sa méthode Sort.
A+![]()
Pourquoi trier le tableau dans une TStringList alors qu'il est plus facile et simple de faire un Tri directement sur le Tableau
Ci dessous le code du tri à bulle
Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 type TMonType = record Id : Integer; Chaine : Strings; end; MonTableau : array of TMonType; // .... var MonTypeTmp : TMonType; bSwap : Booelan; begin // tri du tableau bSwap := True; While bSwap do begin bSwap := False; for i := low(MonTableau) to high(MonTableau) - 1 do begin if (MonTableau[i].Id > MonTableau[i + 1].Id) then begin MonTypeTmp := MonTableau[i]; MonTableau[i] := MonTableau[i+1]; MonTableau[i+1] := MonTypeTmp ; bSwap := true; end; end; // for end; // while
A adapter bien sur à ton tableau
Modérateur Delphi
Le guide du bon forumeur :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
Re-bonjour,
... s'il s'agit de chaînes de caratères à trier le tri d'une StringList s'effectue avec une seule instruction : MaStringList.Sort ... donc pas besoin de se casser la tête avec 26 lignes de code. Non ? En plus Sort c'est du QuicK plus rapide que le tri à bulle.Pourquoi trier le tableau dans une TStringList alors qu'il est plus facile et simple de faire un Tri directement sur le Tableau
A+![]()
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Bonjour,
... effectivement ce serait mieux si le contexte permet de le faire... peut-être remplacé le array définitivement pas une TStringList
... et s'il veut un tri de chaînes plus rapide que le Quick on pourra toujours lui proposer AlphaSort (on en a une version sur le site qui fonctionne avec un array de string ... par contre elle utilise davantage que les 26 lignes de code du tri à bulle).
A+![]()
Bein quoi ?? il est bien le tri à bulle, qu'est ce qu'il a mon tri à bulle ?
Enfin, bon, pour ma part, j'aime bien le tri à bulle, car il est facile à retenir et à écrire
Puis selon le nombre d'éléments à trier, on a pas besoin de trop se casser la tête avec lui et il est quand même assez rapide ^^
Sinon, je serais intéressé par le code du QuickSort et AlphaSort (Juste pour voir)![]()
Modérateur Delphi
Le guide du bon forumeur :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
Un petit papier surAlphaSort de Lionel Delafosse, un ancien de mes collègues ... tu as du code, avec des string (il peut être plus performant avec du PChar)
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Re-bonjour,
... je ne critique pas le tri à bulle car chaque méthode de tri est utilisable dans les conditions où elle excelle.Bein quoi ?? il est bien le tri à bulle, qu'est ce qu'il a mon tri à bulle ?
1) Pour le QuickSort : voir ici, (FAQ) : http://castelain.developpez.com/sources/TriStringGrid/Sinon, je serais intéressé par le code du QuickSort et AlphaSort (Juste pour voir)
où l'on trouve la procedure QuickSort(...) utilisée pour le tri d'un StringGrid.
2) Pour AlphaSort : voir ici : http://www.developpez.net/forums/sho...rt#post2784174
où l'on trouve la Function AlphaSortAOS(...) qui est encapsulée dans la procedure SupprDoublonsAOS(...)
(pour supprimer les doublons on trie d'abord puis on crée le fichier-destination en ignorant les doublons).
A+![]()
Partager