• Jueves 14 de Noviembre de 2024, 22:46

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - strik3r

Páginas: [1]
1
C/C++ / Quicksort de arreglo en C++
« en: Jueves 17 de Febrero de 2011, 09:49 »
Bueno pues no me acomoda los numeros... y no se que esta mal en mi codigo le he dado mil vueltas , y para mi que la funcion particion es la del error... si alguien pudiera ayudarme....

Código: C++
  1. void quicksort( int A, int i, int j )
  2. {
  3. int ind, k;
  4. ind = pivote( A, i, j );
  5. if( ind >= 0 ) {
  6. k = particion(A, i, j, A[ind] );
  7. quicksort( A, i, k-1 );
  8. quicksort( A, k, j );
  9. }
  10. }
  11.  
  12. int pivote( int A[],int i,int j )
  13. {
  14. int k, r;
  15. for( k = i+1; k <= j; k++ ) {
  16.   if(A[k]>A[i])
  17.       return i;
  18.   else
  19.      if(A[k]<A[i])
  20.         return k;
  21. }
  22. /* No hay llaves diferentes */
  23. return -1;
  24. }
  25.  
  26. int particion( int A[],int i, int j, int v )
  27. {
  28. int l,r;
  29. l=i; r=j;
  30. do {
  31. aux=A[l];
  32. A[l]=A[r];
  33. A[r]=aux;
  34. while(A[l]<v)
  35. l++;
  36. while(A[r]>=v)
  37. r--;
  38. } while ( l<r );
  39. return l;
  40. }
  41.  

Páginas: [1]