Algoritmo de ordenacion QuickSort en lenguaje C++, AYUDA!!!!


  • 0

    Hola chicos, a ver si me podeis ayudar con esto:

    Necesito implementar el famoso algoritmo de ordenacion llamado QuickSort en lenguaje C++, a ver si me podeis ayudar, que me juego un punto en la nota final de la asignatura programacion…

    mas o menos ya lo tengo, pero busco otras alternativas para ponerle el broche final...

    CIAO



  • 1

    umm en C++ vaaaya por dios. yo lo he visto en haskell y no queda mu complicao…pero claro haskell es funcional...ande va a parar.



  • 2

    Buscalo en el google tal cual, eso si, añade lo de C. Mira en los enlaces que le he puesto ha Fredy por aqui abajo, uqe hay bastantes recursos de C en español.

    En el peor de los casos te lo puedo pasar en pseudo codigo y/o pascal y si no lo encuentras ya te lo hago yo.



  • 3

    vere a ver que pillo, pero por el google no he pillado nada que sea 100% el metodo que necesito, pero todo es buscar…

    CIAO



  • 4

    Dame un correo y te lo paso en VB6, de ahí te será muy facil pasarlo a C++.

    Un saludo.



  • 5

    ok, pero no tengo nipu de vb6….

    JoMneL@iespana.es

    JoMneL@hotmail.com

    CIAO



  • 6

    ¿Todavia no lo has encontrado?

    Este finde-puente te lo paso.



  • 7

    joer ahora mismo no se donde lo tengo pero si lo encuentro entre los restos de apuntes te paso el algoritmo para C que supongo que sea similar al de C++



  • 8

    ok, muchas gracias, esperare a despues del fin de semana, a ver si me podeis mandar lo que tengais…

    Muchas gracias a todos.

    CIAO



  • 9

    JomNel te mando ahora a tu mail el algoritmo en pseudocodigo.



  • 10

    http://www.dsic.upv.es/~jorallo/libro_c++/fuentes/ej10_09.cpp

    Esa es una manera que me he encontrado por internet, mira si te vale, si no avisa y ya te lo paso de pascal a C.



  • 11

    me cagon la put… es 99% igual al que he implementado, y ademas es de alguien de mi universidad (upv--> universidad politecnica de valencia) si es que no pue ser....

    gracias.

    CIAO

    P.D Aun así mandadme lo que tengais, y así intentare optmizarlo.



  • 12

    Retomo la rama…

    ... pues no consigo que me funcione al 100%, hay un fallo y no hay forma de dar con el, estoy a punto de abandonar...

    si algun alma caritativa esta dispuesta a pegarle un vistazo que me lo diga y le mando el archivo con el codigo por correo electronico.

    Gracias.
    CIAO



  • 13

    por cierto, tú no serás de la facultad…<br /><br />----------------------------------------------------------------------<br />template<typename T> <br />void insdirecta(T *v, int ini, int fin)<br />{<br /> int i,j;<br /> T aux;<br /><br /> for (i = ini+1; i <= fin; i++) {<br /> aux=v<em>;<br /> for (j = i-1; j>=ini && aux<v[j]; j–) <br /> v[j+1]=v[j]; <br /> v[j+1]=aux;<br /> }<br />} <br /><br /><br />template<typename T><br />inline void intercambiar(T &px, T &py)<br />{<br /> T aux;<br /> aux = px; px = py; py = aux;<br />}<br /><br />template<typename T><br />void quicksort(T *v, int ini, int fin)<br />{<br /> int izq,der;<br /> T p;<br /><br /> if (ini < fin) {<br /> izq = ini+1; der = fin; p = v[ini];<br /> while (izq<=der) {<br /> if (v[izq]<=p) { izq++; }<br /> else { intercambiar(v[izq],v[der]); der–; }<br /> }<br /> intercambiar(v[ini],v[der]);<br /> quicksort(v,ini,der-1);<br /> quicksort(v,der+1,fin);<br /> }<br />}<br /><br />–--------------------------------------------------------------------</em>



  • 14

    ==============================================
    vector <int>quick(vector <int>vect, int izq, int dcha) {
    int i=0, j=0;
    int pivote=0, aux=0;
    i=izq;
    j=dcha;
    pivote = vect[(dcha - izq)/2];

    do {
    while (vect _< pivote) {
    i++; }

    while (pivote < vect[j]) {
    j–; }

    if (i <= j) {
    aux = vect_;
    vect _= vect[j];
    vect[j] = aux;
    i++;
    j–;
    }

    } while (i <= j);

    if (izq < j)
    quick (vect, izq, j-1);

    if (i < dcha)
    quick (vect, i+1, dcha);

    return(vect);

    }

    Este es el que yo tengo implementado, pero lo que no me funciona es la rellamada a la funcion, y no consigo dar con el fallo...

    Soy estudiante de Ing. Tec. de Teleco Esp. Sistemas Electronicos en Gandia, si eres tu de alli tambien dilo y nos ponemos en contacto.

    CIAO___</int></int>



  • 15

    ¿Has compilado y trazado? ¿Que te sale? ¿Vector esta definida como una tabla unidimensional? ¿Las llamadas estan bien? ¿No tendrias que poner vector=llamada?



  • 16

    yo soy de valencia.
    No entiendo pq pones if's al final, ya q quicksort tiene q ejecutarse en las 2 partes del vector.

    ¿Conoces a Emi? Estudia lo que tú, y ahora está de Erasmus en Alemania (no acaba el proyecto ni de conya, menudas fiestas se está pegando)

    No te comas la cabeza!! :)



  • 17

    hola.

    Por mas que recien he visto tu pedido ,de hace años ,me preguntaba si tenias todavia o si consegiste el programa basado en quicksort en c++,claro,y de forma estructurada,por lo menos con 3 modulos.

    avisame please!

    gracias





Has perdido la conexión. Reconectando a Hardlimit.