Escribe tu ordenación (o parte de una plantilla) y mira cuánto trabaja de verdad: comparaciones, lecturas y escrituras, con arrays de 8 a 1024 elementos.
Escribe una función sort(a) que ordene el array a en el sitio, o parte de una plantilla. Se ejecuta en tu navegador, aparte de la página y con un tope de 8 segundos, con arrays de 8 a 1024 elementos ya ordenados, al revés y aleatorios. No hay que tocar tu código para contar: cada vez que comparas dos elementos con <, > o restándolos, cuenta una comparación; cada a[i] es una lectura y cada a[i] = …, una escritura.
Con los tamaños grandes, la tool prueba qué curva se ajusta mejor a tus recuentos: n, n log n o n², y con qué constante («≈ 0,5·n²»). Es una medida, no una demostración: un algoritmo puede parecer n log n en estos tamaños y no serlo.
Una ordenación es estable si dos elementos con la misma clave quedan en el orden en que venían. La tool lo comprueba con un array lleno de claves repetidas que recuerdan su posición original.
Las comparaciones con === (no llaman a valueOf) y lo que hagas en arrays auxiliares, salvo cuando escribes de vuelta en a. Comparar un elemento con un número suelto cuenta media comparación.
Escribe tu ordenación (o parte de una plantilla) y mira cuánto trabaja de verdad: comparaciones, lecturas y escrituras, con arrays de 8 a 1024 elementos.