Voici trois exemples d'algorithmes de tris naïfs classiques.
Source / Exemple :
#include <iostream>
using std::cout ;
using std::endl ;
#include <iomanip>
using std::setw ;
#include <stdlib.h>
void Affiche(int * , const int) ;
void Permutation( int * const, int * const );
void TriParSelection(int * , const int) ;
void TriParInsertion(int * , const int) ;
void TriParBulle(int * , const int) ;
void main()
{
const int Dimension = 10 ;
int I[Dimension] = {0,5,3,6,4,2,7,1,-5,-6} ;
int J[Dimension], K[Dimension] ;
memcpy(&J,I,sizeof(I)) ;
memcpy(&K,I,sizeof(I)) ;
int *TriSel ;
TriSel = I ;
cout << "TriSel :" << endl ;
Affiche(TriSel, Dimension) ;
TriParSelection(TriSel, Dimension) ;
Affiche(TriSel, Dimension) ;
int *TriIns ;
TriIns = J ;
cout << "TriIns :" << endl ;
Affiche(TriIns, Dimension) ;
TriParInsertion(TriIns, Dimension) ;
Affiche(TriIns, Dimension) ;
int *TriBul ;
TriBul = K ;
cout << "TriBul :" << endl ;
Affiche(TriBul, Dimension) ;
TriParBulle(TriBul, Dimension) ;
Affiche(TriBul, Dimension) ;
system("PAUSE") ;
}
void Affiche(int * Liste, const int N)
{
int i ;
for(i=0;i<N;i++)
{
cout << setw(4) << Liste[i] ;
}
cout << endl ;
}
void Permutation( int * const element1Ptr, int * const element2Ptr )
{
int buffer = *element1Ptr ;
- element1Ptr = *element2Ptr ;
- element2Ptr = buffer ;
}
void TriParSelection(int *Liste, const int N)
{
int i, j ;
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)
{
if(Liste[j]<Liste[i])
{
Permutation(&Liste[i],&Liste[j]) ;
}
}
}
}
void TriParInsertion(int *Liste, const int N)
{
int i, j, buffer ;
for(i=0;i<N-1;i++)
{
buffer = Liste[i+1] ;
j = i ;
while((j>=0)&&(buffer<Liste[j]))
{
Permutation(&Liste[j],&Liste[j+1]) ;
j-- ;
}
}
}
void TriParBulle(int *Liste, const int N)
{
int i, j ;
for(i=0;i<N-1;i++)
{
for(j=0;j<N-i;j++)
{
if(Liste[j+1]<Liste[j])
{
Permutation(&Liste[j],&Liste[j+1]) ;
}
}
}
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.