Ragazzi devo fare il quicksort per ordinare caratteri ecco il codice:
codice:
#include <cstdlib>
#include <iostream>
#include <time.h>

using namespace std;

typedef char tvettchar[100];

void acquisiscivett(tvettchar &vc, int &N){
     int I;
     do{
       cout<<"Inserisci quanti caratteri inserire: ";
       cin>>N;
     }while((N<1)||(N>100));
     for(I=0;I<N;I++){
       cout<<"Inserisci il "<<I+1<<char(248)<<" carattere: ";
       cin>>vc[I];
     }
}

void visualizzavett(tvettchar vc, int N){
     int I;
     for(I=0;I<N;I++){
       cout<<I+1<<char(248)<<" carattere: "<<vc[I]<<endl;
     }                              
}

void scambia(char &A, char &B){
     char aiuto = A;
     A = B;
     B = aiuto;
}

void quicksort(tvettchar &vc, int inf, int sup){
  int I,J;
  char centro;
  
  srand(time(NULL));
  
  if (inf<sup) {
    // Partenza: i parte dal primo elemento del vettore, j dall'ultimo
    I = inf; J = sup;
  
    // Il centro è l'elemento medio del vettore
    centro = rand() % ;// cosa devo mettere qui per il random di un carattere presente nel vettore??
 
    do{
      // Finché l'elemento generico i-esimo a sinistra del centro
      // è minore del centro, incrementa i
      if(vc[I] < vc[centro]) 
        I++;
      else
      // Finché l'elemento generico j-esimo a destra del centro
      // è maggiore del centro, decrementa j
      if(vc[J] > vc[centro]) 
        J--;
      else
      // Altrimenti, scambia tra loro l'elemento i-esimo e quello j-esimo
      if(I <= J) {
        scambia(vc[I],vc[J]);
        I++, J--;
      }
    } while (I <= J);  // Cicla finché i e j non si incontrano
 
    // Richiama il quick sort sul primo sottovettore
    quicksort(vc,inf,J);
 
    // Richiama il quick sort sul secondo sottovettore
    quicksort(vc,I,sup);
  }
}

int main()
{
    tvettchar vc;
    int N;
    
    acquisiscivett(vc,N);
    quicksort(vc,0,N-1);
    visualizzavett(vc,N);
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
cosa metto per randomizzare il carattere??