Quick Sort

4
QuickSort Divide y Vencerás + Privote T(n) Esperado O(n lg n) T(n) Peor Caso O(n 2 ) Ing. Juan Ignacio Zamora M. MS.c Facultad de Ingenierías Licenciatura en Ingeniería Informática con Énfasis en Desarrollo de Software Universidad Latinoamericana de Ciencia y Tecnología

Transcript of Quick Sort

QuickSort  Divide  y  Vencerás  +  Privote  

T(n)  Esperado  O(n  lg  n)  T(n)  Peor  Caso  O(n2)  

Ing. Juan Ignacio Zamora M. MS.c Facultad  de  Ingenierías  Licenciatura  en  Ingeniería  Informática  con  Énfasis  en  Desarrollo  de  Software    Universidad  Latinoamericana  de  Ciencia  y  Tecnología        

Primitivas  del  QuickSort  

Ê  Estrategia:  Divide  y  Vencerás  

Ê  Peor  Tiempo  Asintótico  O(n2)  

Ê  Rendimiento  Esperado*  O(n  lg  n)  

Ê  Segmenta  el  arreglo  a  la  mitad,  dejando  de  cada  lado  elementos  mayores  y  menores  a  la  posición  pivote.    

Divide  y  Vencerás    

Ê  Dividir:  Se  parte  el  arreglo  en  dos  sub  arreglos  distintos    Ê  A[p…q-­‐1]  y  A[q+1…r]  

Ê  A[q]  es  el  elemento  pivote  

Ê  El  arreglo  izquierdo  debe    contener  valores  menores  que  A[q]  y  el  derecho  valores  mayores  

Ê  Conquistar:  Se  ordena  cada  A[p…q-­‐1]  y  A[q+1…r]  mediante  llamadas  recursivas  

Ê  Combinar:  este  paso  no  es  necesario,  ya  que  A[p..r]  al  final  va  a  terminar  ordenado  

Método  ::  int  Partition(int[]  A,  int  p,  int  r)