PureBasic

Forums PureBasic
Nous sommes le Jeu 22/Aoû/2019 5:49

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: [TUTO] Trier un tableau
MessagePosté: Sam 24/Déc/2016 16:54 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 29/Juin/2011 14:11
Messages: 1645
Localisation: Belgique
Voici quelques algorithmes de tri

Nb: Ceci est un transposition de code C, donc je n'ai pas utilisé la fonction swap :wink:

1) Le tri par permutation (buble sort)
Code:
; Tri par permutation Buble sort
Procedure BubleSort(Array v.i(1),n) 
  Protected sent.b=0,i=0,E
  While (n<>1 And sent=0)
    sent=1
    For i=0 To n-2
      If(v(i)>v(i+1))
        E=v(i)
        v(i)=v(i+1)
        v(i+1)=E
        sent=0
      EndIf
    Next
    n-1
  Wend
EndProcedure
Procedure Affiche(Array v.i(1),n)
  Protected i
  For i=0 To n-1
    Debug "Vecteur "+Str(i)+" : "+Str(v(i))
  Next
EndProcedure
; Un tableau pour le teste
Dim v.i(100)
v(0)=85
v(1)=2
v(2)=8
v(3)=5
v(4)=-8
v(5)=36
v(6)=14
v(7)=6
v(8)=-7
v(9)=57
Define n.i=10
Debug "Vecteur non-trié:"
Affiche(v(),n)
BubleSort(v(),n)
Debug "Vecteur trié:"
Affiche(v(),n)


2) Le tri par insertion

Code:
; Tri par insertion
Procedure InsertionSort(Array v.i(1),n) 
  Protected x.i,j,i
  For j=n-2 To 0 Step -1
    x=v(j)
    i=j+1
    While(i<n And x>v(i))
      v(i-1)=v(i)
      i+1
    Wend 
    v(i-1)=x
  Next
EndProcedure
Procedure Affiche(Array v.i(1),n)
  Protected i
  For i=0 To n-1
    Debug "Vecteur "+Str(i)+" : "+Str(v(i))
  Next
EndProcedure
; Un tableau pour le teste
Dim v.i(100)
v(0)=85
v(1)=2
v(2)=8
v(3)=5
v(4)=-8
v(5)=36
v(6)=14
v(7)=6
v(8)=-7
v(9)=57
Define n.i=10
Debug "Vecteur non-trié:"
Affiche(v(),n)
InsertionSort(v(),n)
Debug "Vecteur trié:"
Affiche(v(),n)


(a suivre...)
3) Le tri par tas heap sort

_________________
Windows 10 64 bits PB: 5.70 ; 5.71 beta 2


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye