¿Por qué mi implementación de Quicksort no funciona?

Su código no funciona debido a un error lógico en su función de partición ().

Al final de su ciclo en la función, tiene ‘pindex’ en la posición donde debe ir el siguiente elemento más pequeño que el pivote, pero debido a que el ciclo tiene fin, sabe que todos los elementos más pequeños que / iguales al pivote son ya en el rango [inicio + 1, pindex). Debido a esto, el último paso de partición que intercambia el elemento pivote con un [pindex]:

  1. intercambie el elemento pivote con un elemento más grande que el pivote. Esto rompe todo el punto de partición.
  2. intercambie el elemento pivote con algo que ni siquiera está en el límite de la matriz. Piense en el caso cuando todos los elementos son más pequeños que el pivote. ¿Qué valor tiene pindex después de que el ciclo termina en tal disposición?

Como solución para solucionar el problema, intercambie el elemento pivote con el elemento en [pindex – 1] en lugar del elemento en [pindex].

More Interesting

Dados N cajas grandes y M cajas pequeñas de diferentes tamaños, ¿cómo elegir una caja grande óptima para empacar todas las cajas más pequeñas?

¿Qué algoritmo usa la radio de Spotify para elegir las canciones?

¿Qué es un árbol de búsqueda binario en una estructura de datos?

¿Por qué el número total de respuestas en mi cuenta de Quora disminuyó repentinamente en 10?

¿Qué algoritmo se usa para obtener la cadena correcta de una muestra de cadenas?

¿Puedo encontrar el camino hamiltoniano más corto en un gráfico completo ponderado no dirigido en tiempo polinómico (donde todos los pesos no son negativos)?

La mayoría de las definiciones / teoremas / ejemplos de privacidad diferencial que he encontrado son para consultas que devuelven un solo número por columna, como un promedio. ¿Existen mecanismos diferencialmente privados para otros tipos de consultas, como los que subconjustan filas en función de algún criterio?

¿Cómo Thomas Cormen y sus coautores generaron el índice para su libro clásico de algoritmos?

Algoritmos: ¿Cómo reduzco la latencia en HFT?

¿Cuál es la solución a este décimo problema polinómico de clase?

¿Cuáles son los principales algoritmos en visión artificial?

En algoritmos, ¿cuál es el límite superior e inferior?

¿Estoy perdiendo el tiempo implementando la estructura de datos elementales (Stacks, Queues y LinkedLists) como parte de la preparación para una entrevista de prácticas en Google?

Cómo encontrar un segmento en una matriz con un número máximo de elementos con suma S

Soy nuevo en Quora y no entiendo si las preguntas de coeficiente intelectual son una tendencia constante o si estoy atrapado en alguna forma de algoritmo infernal. Si es así, ¿cómo escapo?