Ver Mensaje Individual
  #1  
Antiguo 20-03-2009
chouki chouki is offline
Miembro
 
Registrado: mar 2009
Posts: 11
Reputación: 0
chouki Va por buen camino
indice fuera de rango

hola muy buenas a tod@s
En principio quiero hacer un programa recursivo que me permite ordenar los datos (enteros) del vector usando inserción directa.
Procesoara cada paso i los elementos v1,...vi-1 están ordenados y se inserta entre ellos vi de forma que después v1...vi estén ordenados habrá que comenzar con i=2.
la idea de la inserción directa es abrir un hueco en la sucesión v1..vi-1 para encajar vi en la posición adecuada.
Estás un pequeña aproximación que hicé pero claro hay un desbordamiento de los indices del array que se ven claramente al seguir el algoritmo:
Código:
 
  public static void insercion(int vector[],int ta) 
  { 
     if (ta-1>0) 
     { 
        insercion(vector,ta-1); 
        insertar(vector,ta); 
     } 
  } 
  public static void insertar(int v[],int tam) 
  { 
    int pivote,i; 
    pivote=v[tam-1];  
    i=tam-1; 
    while (i>=0 && v[i]> pivote ) 
    { 
           v[i+1]=v[i]; 
           i--; 
    } 
    v[i+1]=pivote; 
  }
Pero en Principio si alguien se le ocurre una solución más eficiente que la mia estaré muy agradecido aquien me la puede facilitar yaque me ase falta urgentemente.
Muchisima gracias de antemano
En la espera de vuestra colaboración les saludo atentamente.
Responder Con Cita