def QuickSortTipo(Lista, li, lf): pila = PD.PilaD() PD.crearpilaD(pila) PD.apilar(pila, [li, lf]) while (not PD.pilavacia(pila)): x = PD.desapilar(pila) li, lf = x[0], x[1] pivot = lf i = li j = lf - 1 while (i <= j): while (Lista[i].tipo < Lista[pivot].tipo): i = i + 1 while Lista[j].tipo > Lista[pivot].tipo: j = j - 1 if (i <= j): aux = Lista[i] Lista[i] = Lista[j] Lista[j] = aux i = i + 1 j = j - 1 aux = Lista[i] Lista[i] = Lista[lf] Lista[lf] = aux if (i < lf): PD.apilar(pila, [(i), lf]) if (j > li): PD.apilar(pila, [li, (j)])
def QuickSortStock(Lista, li, lf): pila = PD.PilaD() PD.crearpilaD(pila) PD.apilar(pila, [li, lf]) while (not PD.pilavacia(pila)): x = PD.desapilar(pila) li, lf = x[0], x[1] pivot = lf i = li j = lf - 1 while (i <= j): while (float(Lista[i].stock) < float(Lista[pivot].stock)): i = i + 1 while float(Lista[j].stock) > float(Lista[pivot].stock): j = j - 1 if (i <= j): aux = Lista[i] Lista[i] = Lista[j] Lista[j] = aux i = i + 1 j = j - 1 aux = Lista[i] Lista[i] = Lista[lf] Lista[lf] = aux if (i < lf): PD.apilar(pila, [(i), lf]) if (j > li): PD.apilar(pila, [li, (j)])