• Viernes 3 de Mayo de 2024, 06:09

Autor Tema:  Re: busqueda en vectores complejidad log(n)  (Leído 2310 veces)

Vicentillo

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: busqueda en vectores complejidad log(n)
« en: Sábado 11 de Mayo de 2002, 15:40 »
0
si  alguien se acuerda o tiene a mano un metodo de ordenacion de vectores de complejidad baja (sobre log(n)) que me lo mande please. Lo digo Xq estoy haciendo Ing.Informatica en zaragoza y lo necesito pa una practica.
GRACiAS

dheak

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
busqueda en vectores complejidad log(n)
« Respuesta #1 en: Martes 14 de Mayo de 2002, 23:26 »
0
Hola vicentillo.

Oye aqui te mando el quiksort. Parte del hecho de que es mas facil ordenar dos vectores de n/2 posiciones que uno de n posiciones.

Este es recursivo y ordena el vector v que es de enteros. Si quieres el no recursivo dimelo.

proc Quiksort (v:tabla (1...N):entero, inf:entero, sup:entero)
var x:entero, p:entero, temp:entero fin var
inicio
 si inf < sup entonces
  p = (sup+inf) div 2
  x = v(p)
  repetir
   mientras (v(inf) < x)
    inf = inf + 1
   fin mientras
   mientras (v(sup > x)
    sup = sup - 1
   fin mientras
   si (inf < sup) entonces
    si (inf = p) entonces
     p = sup
    fin si
    si (sup = p) entonces
     p = inf
    fin si
    temp = v(inf)
    v(inf) = v(sup)
    v(sup) = temp
    inf = inf + 1
    sup = sup - 1
   fin si
  hasta (inf > sup)
  Quiksort(v,inf,p)
  Quiksort(v,p+1,sup)
 fin si
fin inicio

Saludos.