begin process at 2012 02 16 22:27:52
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > PLUS RAPIDE QUE LE TRI À BULLE, LE TRI PAR SELECTION

PLUS RAPIDE QUE LE TRI À BULLE, LE TRI PAR SELECTION


 Information sur la source

Note :
6,67 / 10 - par 3 personnes
6,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :tri, sélection Niveau :Initié Date de création :17/05/2001 Vu :9 123

Auteur : ADN733R

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Voici un tri plus rapide que le tri à bulles. Etant piètre programmeur, je me suis contenté de recopié celui d'un site vb. Je suis sur qu'il peut vous servir......

Source

  • Public Sub TriParSelection(tabLong() As Long)
  • Dim lgFor As Long
  • Dim lgMem As Long, lgTiers As Long
  • Dim lgTmp As Long
  • lgTiers = LBound(tabLong)
  • Do
  • lgTiers = 3 * lgTiers + 1
  • Loop Until lgTiers > UBound(tabLong)
  • Do
  • lgTiers = lgTiers / 3
  • For lgFor = lgTiers + LBound(tabLong) To UBound(tabLong)
  • ' Enregistrement de la valeur de l'élément "courant"
  • lgTmp = tabLong(lgFor)
  • lgMem = lgFor
  • Do While tabLong(lgMem - lgTiers) > lgTmp
  • ' Ecrase la valeur de l'élément "courant" (ou de comparaison, à partir du second tour)
  • tabLong(lgMem) = tabLong(lgMem - lgTiers)
  • ' Recherche la position d'un nouvel élément de "comparaison"
  • lgMem = lgMem - lgTiers
  • ' Evite de sortir des limites du tableau
  • If lgMem < lgTiers Then Exit Do
  • Loop
  • ' Enregistre la valeur de l'élément courant à la place de
  • ' l'élément de comparaison si l'échange a effectivement eu lieu.
  • ' Sinon, cela n'a aucun effet, enregistrement de l'élément courant
  • ' sur lui-même
  • tabLong(lgMem) = lgTmp
  • Next lgFor
  • Loop Until lgTiers = LBound(tabLong)
  • End Sub
Public Sub TriParSelection(tabLong() As Long)
Dim lgFor As Long
Dim lgMem As Long, lgTiers As Long
Dim lgTmp As Long
lgTiers = LBound(tabLong)
Do
    lgTiers = 3 * lgTiers + 1
Loop Until lgTiers > UBound(tabLong)
Do
    lgTiers = lgTiers / 3
    For lgFor = lgTiers + LBound(tabLong) To UBound(tabLong)
' Enregistrement de la valeur de l'élément "courant"
        lgTmp = tabLong(lgFor)
        lgMem = lgFor
        Do While tabLong(lgMem - lgTiers) > lgTmp
' Ecrase la valeur de l'élément "courant" (ou de comparaison, à partir du second tour)
            tabLong(lgMem) = tabLong(lgMem - lgTiers)
' Recherche la position d'un nouvel élément de "comparaison"
            lgMem = lgMem - lgTiers
' Evite de sortir des limites du tableau
            If lgMem < lgTiers Then Exit Do
        Loop
' Enregistre la valeur de l'élément courant à la place de
' l'élément de comparaison si l'échange a effectivement eu lieu.
' Sinon, cela n'a aucun effet, enregistrement de l'élément courant
' sur lui-même
        tabLong(lgMem) = lgTmp
    Next lgFor
Loop Until lgTiers = LBound(tabLong)
End Sub   



 Sources du même auteur

Source avec Zip ZONE IP ENFIN [ACTIVEX]
Source avec Zip UN GÉNÉRATEUR DE DICTIONNAIRE[DEBUGÉE]
AJOUT DE CLÉS CRYPTÉES DANS LE REGISTRE
POSITIONNER LES MESSAGESBOX OÙ L'ON VEUT
Source avec Zip DESSIN (AVEC LA SOURIS)

 Sources de la même categorie

Source avec Zip TEXTBOX EN NUMÉRIQUE par 320C
Source avec Zip DÉCIMAL TO HEXDECIMAL par loulou27200
SOUS-TITRES : INCRÉMENTATION DE TOUTES LES CHAÎNES DE CARACT... par ALMIRA
Source avec Zip Source avec une capture EVALUER UN NOMBRE D'OBJETS AVEC UNE BALANCE ET DEUX ÉCHANTIL... par lexsty
Source avec Zip Source avec une capture PETIT LOGICIEL DE DEVIS SANS BD par lololilizozo

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) LISTE DÉROULANTE MULTI COLONNES POUR UN COMBOBOX D'UN DATAGR... par erdna
Source avec Zip Source avec une capture PARTICIPATION À L'APPRENTISSAGE DES ENTIERS DE 70 À 99 (DERN... par oulipan
Source avec Zip Source avec une capture TRI PAR INSERTION par jmc70
Source avec Zip Source avec une capture TRI DES ITEMS DE LISTVIEW (DATE, NUMÉRIQUE OU PERSO) par Renfield
Source avec Zip Source .NET (Dotnet) GARDER LA SÉLECTION DANS UN DATAGRID APRÈS LE TRI SUR UNE CO... par chris_brabant

Commentaires et avis

Commentaire de soleildz le 15/11/2003 14:42:06


voici le nbre de fois que a;b;c;.....(20 caracteres) sont present.
n0,n1,........n19 sont des entiers
a                  n0
b                  n1                
c                    n2
d                   n3
e                   n4
.
.
.
.                    n19
  comment ordonner selon n0......n19         rapidement?          

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

tri d'une sélection d'une liste [ par harzer ] Bonjour à tous.J'ai une liste multi sélection dans laquelle j'ai plusieurs lignes.ce que je souhaite faire, c'est après avoir sélectionné une partie d ** TRI D'INFORMATION????** [ par Heny ] Salut a tousJ'utilise ce code pour faire une sélection a deux choix c.a.d je fait un tri par « Mode de payement » et par « versement », si le cheque tri d'une Listview sur plusieur colonne [ par ludovicanceaux ] Salut à tous, en fait j'aurai voulu savoir komment ou kel serai le moyen le plus aproprié pour trié Une Listview ex:J'ai une Listview de 4 lignes et tri d'une Listview sur plusieur colonne [ par ludovicanceaux ] Salut à tous, en fait j'aurai voulu savoir komment ou kel serai le moyen le plus aproprié pour trié Une Listview ex:J'ai une Listview de 4 lignes et Problème de tri dans un etat qui répère une requete [ par rolo ] Votre texte ICIBonjour,Mon problème est le suivant: Je génère une requête SQL en VBA puis j'affiche les résultat trié selon les choix de l'utilisateur Sélection de ligne dans un datagrid [ par drizzt40 ] Bonjour, J'ai un probleme avec la propriété row des datagrid : le numéro de la ligne en cours (datagrid.row) n'augmente pas quand on clique SetFocus Sélection des boutons [ par valer ] salut!voila je suis un peu dans l'urgence car je fini mon stage ce soir!bref voila le pb.Je douche un codes et le met dans une textbox. Je sais génére datagrid tri mémorisation [ par drastik74 ] Bonjour a vous, j'aurais voulu savoir si quelqu'un savait comment faire pour mémoriser le tri d'un datagrid. Je voudrais en fait que lorsque je rouvre [VBA/EXCEL] Tri d'un combobox? [ par ShadowWisp ] Est-ce que quelqu'un connait une méthode *simple* pour trier un combobox dans excel/vba?La propriété de la combobox sorted n'éxistant pas...Merci d'av Tri dans un listview [ par chris81 ] bonjour,comment fait on pour trier des nombres dans un listview en vb.net.mercihttp://www.tarnweb.comhttp://www.correzeweb.com


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales