begin process at 2012 02 11 07:33:35
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VB.NET

 > DATASET QUICKSORT

DATASET QUICKSORT


 Information sur la source

Note :
Aucune note
Catégorie :VB.NET Source .NET ( DotNet ) Classé sous :dataset, quicksort, tri, sort Niveau :Débutant Date de création :22/09/2005 Vu :10 256

Auteur : crilun

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

 Description

Fonction Servant a classer les Elements d'un Dataset a la maniere QuickSort
à partir d'un numero de colonne passé en parametre,
et pour une colonne contenant des entiers

Source

  • 'Function Quicksort de Tri Rapide a partir de Champ d'entiers
  • Public Function intQsort(ByVal g As Integer, ByVal d As Integer, ByRef DT As DataTable, ByVal int_Champ As Integer) As Boolean
  • Dim int_Deb, int_Fin As Integer 'Bornes du Tableau
  • Dim i, m As Integer
  • 'Champs Temporaires du dataset
  • Dim int_IdTemp, int_IdBaseTemp, int_IdTypeTemp As Integer
  • Dim Str_NomTemp As String
  • m = g
  • 'On Considere le Point g element gauche du tableau comme Pivot rem: il pourrait etre plsu optimisé de le prendre aleatoirement
  • 'm : curseur suivant l'empilement des elements deplacés
  • If g < d Then 'Condition d'arret du QuickSort
  • 'on place a droite tout les elements inferieur au pivot et a gauche tout ce superieur au pivot
  • For i = g + 1 To d
  • If CInt(DT.Rows.Item(i).Item(int_Champ)) < CInt(DT.Rows.Item(g).Item(int_Champ)) Then 'alors Inferieur au pivot
  • 'Placement à Gauche
  • m += 1
  • int_IdTemp = DT.Rows.Item(m).Item("ID")
  • int_IdBaseTemp = DT.Rows.Item(m).Item("Base")
  • int_IdTypeTemp = DT.Rows.Item(m).Item("Type")
  • Str_NomTemp = DT.Rows.Item(m).Item("Nom")
  • DT.Rows.Item(m).Item("ID") = DT.Rows.Item(i).Item("ID")
  • DT.Rows.Item(m).Item("Base") = DT.Rows.Item(i).Item("Base")
  • DT.Rows.Item(m).Item("Type") = DT.Rows.Item(i).Item("Type")
  • DT.Rows.Item(m).Item("Nom") = DT.Rows.Item(i).Item("Nom")
  • DT.Rows.Item(i).Item("ID") = int_IdTemp
  • DT.Rows.Item(i).Item("Base") = int_IdBaseTemp
  • DT.Rows.Item(i).Item("Type") = int_IdTypeTemp
  • DT.Rows.Item(i).Item("Nom") = Str_NomTemp
  • End If
  • Next
  • 'on place le pivot a la fin des elements modifiés puisque celui ci est plus grand que les elements deplacés
  • int_IdTemp = DT.Rows.Item(m).Item("ID")
  • int_IdBaseTemp = DT.Rows.Item(m).Item("Base")
  • int_IdTypeTemp = DT.Rows.Item(m).Item("Type")
  • Str_NomTemp = DT.Rows.Item(m).Item("Nom")
  • DT.Rows.Item(m).Item("ID") = DT.Rows.Item(g).Item("ID")
  • DT.Rows.Item(m).Item("Base") = DT.Rows.Item(g).Item("Base")
  • DT.Rows.Item(m).Item("Type") = DT.Rows.Item(g).Item("Type")
  • DT.Rows.Item(m).Item("Nom") = DT.Rows.Item(g).Item("Nom")
  • DT.Rows.Item(g).Item("ID") = int_IdTemp
  • DT.Rows.Item(g).Item("Base") = int_IdBaseTemp
  • DT.Rows.Item(g).Item("Type") = int_IdTypeTemp
  • DT.Rows.Item(g).Item("Nom") = Str_NomTemp
  • 'le pivot est a la bonne place, on repete l'operation pour les elements de gauche et ceux de droite par rapport au curseur m
  • 'quick sort a Gauche
  • If intQsort(g, m - 1, DT, int_Champ) = False Then
  • intQsort = False
  • Exit Function
  • End If
  • 'quickSort a Droite
  • If intQsort(m + 1, d, DT, int_Champ) = False Then
  • intQsort = False
  • Exit Function
  • End If
  • End If
  • intQsort = True
  • End Function
  'Function Quicksort de Tri Rapide a partir de Champ d'entiers
    Public Function intQsort(ByVal g As Integer, ByVal d As Integer, ByRef DT As DataTable, ByVal int_Champ As Integer) As Boolean
        Dim int_Deb, int_Fin As Integer 'Bornes du Tableau
        Dim i, m As Integer

        'Champs Temporaires du dataset
        Dim int_IdTemp, int_IdBaseTemp, int_IdTypeTemp As Integer
        Dim Str_NomTemp As String
        m = g

        'On Considere le Point g element gauche du tableau comme Pivot rem: il pourrait etre plsu optimisé de le prendre aleatoirement
        'm : curseur suivant l'empilement des elements deplacés

        If g < d Then 'Condition d'arret du QuickSort

            'on place a droite tout les elements inferieur au pivot et a gauche tout ce superieur au pivot
            For i = g + 1 To d
                If CInt(DT.Rows.Item(i).Item(int_Champ)) < CInt(DT.Rows.Item(g).Item(int_Champ)) Then 'alors Inferieur au pivot
                    'Placement à Gauche
                    m += 1

                    int_IdTemp = DT.Rows.Item(m).Item("ID")
                    int_IdBaseTemp = DT.Rows.Item(m).Item("Base")
                    int_IdTypeTemp = DT.Rows.Item(m).Item("Type")
                    Str_NomTemp = DT.Rows.Item(m).Item("Nom")

                    DT.Rows.Item(m).Item("ID") = DT.Rows.Item(i).Item("ID")
                    DT.Rows.Item(m).Item("Base") = DT.Rows.Item(i).Item("Base")
                    DT.Rows.Item(m).Item("Type") = DT.Rows.Item(i).Item("Type")
                    DT.Rows.Item(m).Item("Nom") = DT.Rows.Item(i).Item("Nom")

                    DT.Rows.Item(i).Item("ID") = int_IdTemp
                    DT.Rows.Item(i).Item("Base") = int_IdBaseTemp
                    DT.Rows.Item(i).Item("Type") = int_IdTypeTemp
                    DT.Rows.Item(i).Item("Nom") = Str_NomTemp

                End If


            Next

            'on place le pivot a la fin des elements modifiés puisque celui ci est plus grand que les elements deplacés
            int_IdTemp = DT.Rows.Item(m).Item("ID")
            int_IdBaseTemp = DT.Rows.Item(m).Item("Base")
            int_IdTypeTemp = DT.Rows.Item(m).Item("Type")
            Str_NomTemp = DT.Rows.Item(m).Item("Nom")

            DT.Rows.Item(m).Item("ID") = DT.Rows.Item(g).Item("ID")
            DT.Rows.Item(m).Item("Base") = DT.Rows.Item(g).Item("Base")
            DT.Rows.Item(m).Item("Type") = DT.Rows.Item(g).Item("Type")
            DT.Rows.Item(m).Item("Nom") = DT.Rows.Item(g).Item("Nom")

            DT.Rows.Item(g).Item("ID") = int_IdTemp
            DT.Rows.Item(g).Item("Base") = int_IdBaseTemp
            DT.Rows.Item(g).Item("Type") = int_IdTypeTemp
            DT.Rows.Item(g).Item("Nom") = Str_NomTemp

            'le pivot est a la bonne place, on repete l'operation pour les elements de gauche et ceux de droite par rapport au curseur m

            'quick sort a Gauche
            If intQsort(g, m - 1, DT, int_Champ) = False Then
                intQsort = False
                Exit Function
            End If

            'quickSort a Droite
            If intQsort(m + 1, d, DT, int_Champ) = False Then
                intQsort = False
                Exit Function
            End If

        End If

        intQsort = True


    End Function



 Sources du même auteur

Source avec Zip Source .NET (Dotnet) JOINTURE ENTRE UN DATASET ET UN FICHIER XML

 Sources de la même categorie

Source .NET (Dotnet) MODIFICATION DATE DE WINDOWS EN VB.NET ET VBA par us_30
Source avec Zip Source avec une capture Source .NET (Dotnet) ENVOI DE MAIL AVEC PIÈCE JOINTE par EhJoe
Source .NET (Dotnet) AMUSONS NOUS AVEC UN LABEL ^^ par Adn56
Source avec Zip Source avec une capture Source .NET (Dotnet) UN NAVIGATEUR INTERNET EN VB.NET par azrti
Source avec Zip Source .NET (Dotnet) CONVERSION DE DEVISE MONAITAIRE VIA UN SERVICE WEB par bigmonkey7

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) OUVRIR BASE ACCESS PAR CLIC DROIT par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) VB.NET ET MYSQL par nari3lik
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 Source .NET (Dotnet) XPLISTVIEW par bouv
Source avec Zip TRI A BULLE SUR DES VALEURS NUMÉRIQUES par eka808

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

pb de tri dans un dataset [ par fourtoo ] bonjour dans mon dataset se trouvent deux tables: "Logement" et "TypeLogement" lors de l'affectation des enregistrements de "Logement" dans un dataro Tri sur un FileInfo [ par gandalflegris007 ] Bonjour à tous,je souhaiterai savoir s'il est possible d'utiliser la méthode sort sur un tableau de FileInfo.En effet, je récupère la liste de tous le Tri par odre décroissant [ par code4free ] Bonjour, j'ai des gros tableaux plusieurs dizaines de milliers de lignes (&#224; plusieurs colones )que je trie par ordre croissant avec quicksort. J' problème de tri dans un flexgrid vb6 [ par thrill2 ] moi j'ai un probl&#232;me avec mon sort de mon flexgrid en vb6 a chaque foie que j'essaie de faire mon tri il me donne comme message d'erreur Method ' VB6 Tri Excel [ par clad74 ] Bonjour le forum,j'ai un soucis de tri avec excel. J'ai déjà utilisé la fonction qui permet de trier mais bizarrement ça ne marche pas. Mystère.j'aime ADODC et sort [ par salem3 ] Bonsoirje suis entrain de développer une application en vb6.Cette application se connecte a une base de données sql serverla connexion se fait a l'aid tri decroissant des données [ par dianbobo ] bonjour tout le monde je voudrai faire un tri décroissant puis retourner l'avant derniere valeur plus petite du tableau dans une cellule. les 100 dern urgent aidez-moi plizz: vue d'une grille [ par tresore ] Bonjour,Je suis assez novice en VB et j'ai vraiment besoin d'un petit coup de pouce.Alors je développe sous VB6.Je fais un tri sur une grille et j'aim TRI QuickSort NON Récursif [ par us_30 ] Bonsoir,JE cherche sans trouver l'algorithme du QuickSort NON Récursif.En effet, sur GOOGLE on trouve une plétore de site présentant soit disant Quick probleme pour accéder a une base de donnée mysql [ par mickael56100 ] Bonjour j'utilise Easy Php2.0b1, avec Mysql 5.0.22, je souhaiterais réaliser un logiciel de gestion d'un club de football.J'ai télécharger un installe


Nos sponsors


Sondage...

Comparez les prix

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 : 4,852 sec (3)

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