Saltar al contenido
Portada » Ordenación Quicksort

Ordenación Quicksort

Algoritmo Quicksort

  • Entre el conjunto de elementos a ordenar se selecciona uno, llamado pivote.
  • Se colocan todos los elementos a la derecha y a la izquierda del pivote según el criterio de ordenación. De esta forma el elemento pivote estará en su lugar correspondiente del listado.
  • El paso anterior se repite para cada sub-lista, seleccionando un nuevo pivote. Cuando alguna sub-lista tenga un solo elemento el algoritmo termina.

Complejidad

En el caso en que los pivotes sean un extremo de la lista la complejidad es de O(n2). De media la complejidad del algoritmo es de O(nlogn). Por tanto, la selección del pivote es un paso clave que nos ayudará a mejorar la eficiencia del algoritmo.

Implementación en Javascript

const quickSort = ( [ x = [], ...xs ] ) => 
 {
  return ( x.length === 0 ) ? [] : [
    ...quickSort( xs.filter( y => y <= x ) ),
    x,
    ...quickSort( xs.filter( y => y > x ) )
  ];
}

    
const array = [10, 4, 40, 32, 67, 12, 43, 31, 65, 1];
const resultado = quickSort(array);


document.write(resultado);

Más algoritmos de ordenación

Ordenación BurbujaCada elemento va moviéndose hasta encontrar su lugar
Ordenación por SelecciónParte de la selección de cada elemento
QuicksortSelección de un pivote inicial a partir del cual va iterando
Ordenación por InserciónMuy intuitivo de entender aunque no es el más eficiente

Recursos básicos JS

PrototypeAñadir propiedades de forma dinámica a un objeto
toLocaleStringHerramienta esencial para el formateo de fechas y números en aplicaciones internacionales
Recursividad y pilaUso de recursividad y funcionamiento de la pila JS
DesestructuraciónMecanismo para desempaquetar arrays y objetos
Manejo de StringsManejo básico de Strings, cadenas de caracteres
OperadoresUso de operadores de comparación y lógicos
PromesasGestión de peticiones asíncronas con promesas
SleepImplementación de la función sleep() en JS
ThisUso de la palabra reservada this en diferentes contextos
MapsTe enseñamos cuando usar Map y cuando Object con ejemplos
Switchery JSLibrería para modificar el estilo de los checkbox
Mejores libros Javascript EspañolEncuentra los mejores libros para aprender JS y convertirte en el desarrollador más demandado.
Exception JSManejo de excepciones en Javascript, control de errores y flujo de programa.
Obfuscator JavascriptProtege tu código Javascript Ofuscándolo
Javascript desde ceroAprende los conceptos básicos de Javascript, ponte en marcha.
LodashLodash hace que la manipulación de datos en JavaScript sea más fácil y menos propensa a errores
Formatdate JSFormateo y trabajo con fechas en javascript de forma sencilla.
DayjsBiblioteca para la gestión de fechas
padStartManeja cadenas de texto con la función padStart()