Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/04/2005, 00:31
Avatar de Eternal Idol
Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 9 meses
Puntos: 74
Es lo mismo que hiciste antes pero en diferentes pasos, primero buscas por todo el array (como te mostro blackwind) que ese elemento no exista, despues buscas el primer elemento que sea mayor y desde esa posicion poner el nuevo elemento y 'subir' todos los mayores en una posicion.

En realidad teniendo en cuenta que lo vas ordenando in situ solo tenes que buscar hasta encontrar 1. ese elemento 2. un elemento mayor, no tiene sentido seguir buscando a partir de uno mayor.

Código:
int positionToInsert = -1;
for(DWORD i = 0; i < arraySize; i++)
{
  if (vector[i] > newItem) 
  { 
    positionToInsert = i;
    break; 
  }
  if (vector[i] == newItem) { break; }
}
Este bosquejo de codigo sirve si y solo si los numeros van ordenados , si lo primero que encuentra es un numero mayor quiere decir que no existe en el vector y devuelve en positionToInsert i que es donde hay que insertar el elemento si por el contrario encuentra el elemento en el vector simplemente sale del bucle y positionToInsert queda en -1 lo que nos indica que no debemos insertar nada en el vector.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO

Última edición por Eternal Idol; 05/04/2005 a las 00:36