begin process at 2010 02 10 04:59:30
  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 :8 940

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 avec Zip Source avec une capture Source .NET (Dotnet) INSERER TOUT TYPE DE FICHIERS DANS ORACLE EN VB.NET par SKY32
Source avec Zip Source avec une capture Source .NET (Dotnet) ENVOYER DES EMAILS AVEC PIECES JOINTES EN EXÉCUTANT BLAT par mays
Source avec Zip Source avec une capture Source .NET (Dotnet) PILOTER DES AFFICHEURS 7 SEGMENTS À PARTIR DU PORT SÉRIE OU ... par mays
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLER LE WEBBROWSER ET IDENTIFIER LES LIENS PAR LEUR NUM... par george02
Source avec Zip Source .NET (Dotnet) LOGIN AVEC FICHIER XML par DanMor498

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) LISTVIEWEX par bouv
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) TRI PAR ORDRE ALPHABETIQUE par alpha5
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 ' 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 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 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 tri alphabétique [ par hjsnapo ] Bonjour,Existe-t-il un software dans le commerce ou online permettant dans des fichiers Access volumineux d'obtenirun tri alphabétique effectif comme


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,702 sec (4)

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