Explicación quicksort usando recursividad

Iniciado por Giankaa, 7 Junio 2016, 03:21 AM

0 Miembros y 1 Visitante están viendo este tema.

Giankaa

Hola, vengo a pedir ayudaaaa :-( :-( alguien podría explicarme como funciona el método de ordenamiento quicksort usando la recursividad? He estado mucho tiempo intentando realizarlo pero no me sale, solo me da algún error y así, debo ingresar n números a un vector, luego ordenarlos por ese método, he visto vídeos y no me funcionan las cosas, quería ponerlo en diagrama de flujo para ver si entendía mejor pero nada, espero me ayuden pronto, tengo desesperación T.T :-( gracias...

engel lex

muestra tu implementación para ver donde tienes el error
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Giankaa

Lo estoy haciendo en diagrama de flujo
sin embargo tengo esto de código:
START
    menor=1
    REPEAT
        WRITE "Cuantos números ingresará: ?"
        READ n
        IF n<2 THEN
            WRITE "Ingrese un número mayor o igual a 2"
        ENDIF
    TO n>=2
    FOR i = 1 TO n STEP 1 DO
        WRITE "Ingrese valor para la posición",i,"del vector: "
        READ valor
        vector=valor
    ENDFOR
    nuevo=CALL ordenamiento(vector,1,n)
END
ENTER vector,inicio,final
    izq=inicio
    der=final
    pivote=vector[(inicio+final)]//2
    WHILE izq<=der DO
        FOR izq = inicio TO vector[izq]-1 STEP 1 DO
            FOR der = final TO vector[der] STEP -1 DO
                IF izq<=der THEN
                    temp=vector[izq]
                    vector[izq]=vector[der]
                    vector[der]=temp
                    izq=izq+1
                    der=der-1
                ENDIF
            ENDFOR
        ENDFOR
    ENDWHILE
    IF inicio<der THEN
        ordenamiento(vector,inicio,der)
    ENDIF
    IF izq<final THEN
        ordenamiento(vector,izq,final)
    ENDIF
RETURN