7.1 Ordenamiento 165 En el paso siguiente, izq avanza una unidad hasta encontrar 2, mientras der pasa a señalar –1.Ahora sí están cruzados, y esto nos dice que la partición terminó, pues en efecto, los elementos desde el primero hasta der forman un subarreglo de elementos <= 0, mientras que desde izq hasta el último los elementos son >= 0. -4 0 -1 2 6 3 8 3 der izq ¿Qué falta para ordenar completamente el arreglo? Ordenar por separado cada subarreglo, porque para ordenarlos ya no es necesario intercambiar elementos de un subarreglo con elementos del otro.Este ordenamiento se puede realizar mediante nuevas particiones en subarreglos, hasta llegar a arreglos de una única componente, que ya están ordenados, es decir en cada subarreglo, el procedimiento se llama recursivamente a sí mismo, para realizar nuevas particiones. Procedimiento qsort (E/S real: a [10000] ; E entero: n1, n2) ! n1 y n2 son los índices de las componentes entre las que se va a ordenar el arreglo ! inicialmente deben valer 1 y n respectivamente entero izq, der real pivot, aux inicio izq ← n1 der ← n2 pivot ← a[(izq+der) div 2] ! medio aproximado Repetir Repetir Mientras (a[izq] < pivot) izq ← izq + 1 fin mientras Repetir Mientras (a[der] > pivot) hacer der ← der - 1 fin mientras Si (izq <= der) entonces aux ← a[izq] a[izq] ← a[der] ! intercambiar a[der] ← aux izq ← izq +1 der ← der -1 finsi hasta_(que izq >= der) Si (der > n1) entonces qsort (a, n1, der) ! el procedimiento se llama a sí mismo bajo cierta condición finsi Si (izq < n2) entonces qsort (a, izq, n2) finsi FIN procedimiento