Ricardo Tovar Briones – 1463439<br />Joel A. Escamilla Montemayor - 1443502<br />
Definición<br />El ordenamiento rápido(Quicksorten inglés) es un algoritmo basado en la técnica de divide y vencerás, no s...
Cómo Funciona?<br />Primero tenemos que elegir un elemento al azar al que llamaremos pivote.<br />Después de elegir el piv...
Cómo Funciona?<br />
81<br />25<br />10<br />47<br />77<br />5<br />33<br />60<br />52<br />7<br />47<br />81<br />25<br />10<br />77<br />5<br...
Mejor y Peor Caso<br />En el mejor caso, el pivote termina en el centro de la lista, dividiéndola en dos sublistas de igua...
Mejor Caso <br />5<br />8<br />3<br />2<br />9<br />1<br />4<br />
5<br />8<br />3<br />2<br />9<br />1<br />4<br />
Peor Caso<br />1<br />2<br />5<br />7<br />4<br />3<br />6<br />j<br />i<br />5<br />7<br />1<br />2<br />6<br />3<br />4<...
Pseudocódigo<br />funcion quicksort(arreglo)<br />variables lista, menor, mayor, elemento <br />          if  longitud(arr...
Video<br />
Próxima SlideShare
Cargando en…5
×

Quick Sort

3.873 visualizaciones

Publicado el

0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
3.873
En SlideShare
0
De insertados
0
Número de insertados
7
Acciones
Compartido
0
Descargas
145
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Quick Sort

  1. 1. Ricardo Tovar Briones – 1463439<br />Joel A. Escamilla Montemayor - 1443502<br />
  2. 2. Definición<br />El ordenamiento rápido(Quicksorten inglés) es un algoritmo basado en la técnica de divide y vencerás, no solo nos sirve para organizar una lista de datos desorganizados, si no también, para optimizar el tiempo que se ocupa en realizar esta labor, ya que permite ordenar "n" elementos en un tiempo proporcional de O(n log n), lo cual es muy eficiente.<br />
  3. 3. Cómo Funciona?<br />Primero tenemos que elegir un elemento al azar al que llamaremos pivote.<br />Después de elegir el pivote analizaremos y empezaremos acomodarlos de tal manera que los elementos menores al pivote van del lado izquierdo y los mayores del derecho :<br />elemento < pivote = Izquierda<br />elemento > pivote = Derecha<br />De esta forma obtendremos la posición del pivote elegido y a partir de ahí ordenaremos los demás elementos que del pivote se dividen en 2 sublistas las cual de igual manera elegimos un pivote y lo ordenamos como la primera ves y así sucesivamente se irán dividiendo en 2 sublistas pero cada ves menores lo haremos siempre que tenga mas de un elemento y después ya nos queda ordenada.<br />
  4. 4. Cómo Funciona?<br />
  5. 5. 81<br />25<br />10<br />47<br />77<br />5<br />33<br />60<br />52<br />7<br />47<br />81<br />25<br />10<br />77<br />5<br />33<br />60<br />52<br />7<br />47<br />10<br />81<br />25<br />10<br />77<br />5<br />33<br />60<br />52<br />7<br />47<br />10<br />77<br />81<br />25<br />5<br />33<br />60<br />52<br />7<br />47<br />10<br />77<br />81<br />25<br />5<br />33<br />60<br />52<br />7<br />47<br />10<br />77<br />
  6. 6. Mejor y Peor Caso<br />En el mejor caso, el pivote termina en el centro de la lista, dividiéndola en dos sublistas de igual tamaño. En este caso, el orden de complejidad del algoritmo es O(n·log n).<br />En el peor caso, el pivote termina en un extremo de la lista. El orden de complejidad del algoritmo es entonces de O(n²). El peor caso ocurre en listas que se encuentran ordenadas, o casi ordenadas. Pero principalmente depende del pivote, si por ejemplo el algoritmo implementado toma como pivote siempre el primer elemento del arreglo, y el arreglo que le pasamos está ordenado, siempre va a generar a su izquierda un arreglo vacío, lo que es ineficiente.<br />
  7. 7. Mejor Caso <br />5<br />8<br />3<br />2<br />9<br />1<br />4<br />
  8. 8. 5<br />8<br />3<br />2<br />9<br />1<br />4<br />
  9. 9. Peor Caso<br />1<br />2<br />5<br />7<br />4<br />3<br />6<br />j<br />i<br />5<br />7<br />1<br />2<br />6<br />3<br />4<br />
  10. 10. Pseudocódigo<br />funcion quicksort(arreglo)<br />variables lista, menor, mayor, elemento <br /> if longitud(arreglo) ≤ 1 <br /> return arreglo <br />else<br /> //seleccionar un valor pivote en el arreglo <br /> for eachelementoen arreglo <br /> ifelemento < pivote entoncesañadir “elemento” a menor <br /> elseañadir“elemento” a mayor <br /> return concadenar_lista(quicksort(menor), pivot, quicksort(mayor))<br />
  11. 11. Video<br />

×