3 exemples de tris (devc++ vc++)

Contenu du snippet

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]) ; } } } }

A voir également

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.