Lekan mencionó un punto interesante de diferencia entre la clasificación humana y la clasificación algorítmica, que es que las computadoras pueden abordar fácilmente el “elemento de matriz i” mientras que los humanos no son tan buenos (aunque yo diría que podemos hacerlo en un tiempo de sub-registro).
Sin embargo, otro punto clave de diferencia que creo que es muy importante en la vida real es que los objetos contiguos se pueden desplazar sin costo lineal (hasta cierto punto, por supuesto). Por ejemplo, si ejecuto “ordenar por inserción” yo mismo, vería que me desempeño mejor que [math] O (n log_2 n) [/ math], y ciertamente mejor que [math] O (n ^ 2) [/ matemáticas] sugerido por el algoritmo. Y, de hecho, la ordenación por inserción es cómo clasifico los documentos manualmente, aunque a menudo los agrupo primero (según la distribución), como por la primera letra alfabética, según la cantidad de papeles que necesito clasificar.
¿Cómo funciona el “ordenamiento por inserción” para un humano? Tengo dos pilas, una pila sin clasificar y una pila ordenada. En cada iteración, elijo el elemento superior de la pila sin clasificar, y lo inserto en la posición correcta en la pila ordenada. Encontrar la posición correcta es, en el peor de los casos, [math] log_2 k [/ math] (donde [math] k [/ math] es el número de elementos ordenados) si hago el equivalente a la búsqueda binaria en la pila ordenada; en realidad, generalmente recuerdo aproximadamente dónde pertenece cada objeto en la lista ordenada porque realizo un bucket hasta que tengo menos de 100 objetos, por lo que el tiempo de búsqueda es sublogarítmico en promedio. Luego, insertar el papel en el lugar correcto es tiempo constante. Por lo tanto, cada iteración cuesta [matemática] log_2 k [/ matemática], para un total de [matemática] \ sum_ {i} ^ {n} {log_ {2} {i}} [/ matemática] busca y [matemática] n [ / math] inserta, que es [math] O (n log_2 n) [/ math].
- ¿Cuáles son los mejores algoritmos de selección de apareamiento en informática evolutiva?
- ¿Está sesgado el algoritmo de aleatorización del Reproductor de Windows Media?
- ¿En qué se diferencia la programación dinámica del seguimiento hacia atrás?
- Sin el uso de un generador de números aleatorios, ¿cuál es el método más complicado que se te ocurre para generar una serie de números enteros?
- ¿La comprensión humana sigue un algoritmo de compresión de datos?
Me pregunto si la capacidad de insertar sin costo puede permitirme aprovechar un mejor algoritmo de clasificación, ¡pero en este momento encuentro que mi algoritmo de clasificación de inserción y luego de inserción es efectivo a mano!