Código: Seleccionar todo
/* en la primera llamada iz=1 y de = n */
Algoritmo K-menores(iz, de, n, k; v; )
inicio
i = iz
j = de
x = v(Entero((iz+de)/2))
repetir
mientras (v(i)<x) hacer
i = i + 1
finmientras
mientras (v(j)>x) hacer
j = j - 1
finmientras
si i <= j entonces
aux = v(i)
v(i) = v(j)
v(j) = aux
i =i+1
j=j-1
finsi
hasta que i>j
si k = i-1 entonces /* problema resuelto */
escribir los k primeros
sino
si k < i-1 entonces
K-menores(iz, j, n, k; v;)
sino
K-menores(i, de, n, k; v;)
finsi
fin
k-menores(iz, i-1, n, k; v;)
k-menores(i+1, de, n, k; v;)
Pero no lo tengo claro, podría alguien ayudarme.
Gracias.