C/Visual C - algoritmo de encolamiento

 
Vista:

algoritmo de encolamiento

Publicado por Reapeer (2 intervenciones) el 28/08/2003 01:19:24
Hola. Estoy empezando con la programacion en c. Tengo que hacer un programa que simule 2 colas de 10 elementos cada una y con un numero aleatorio que simula la prioridad. Cuanto menor es el numero, antes debe salir por el buffer. Las colas ya las tengo llenas. Solo me falta implementar el algorimo de ordenación de salida. La salida debe ser como en este ejemplo:
cola1 -> 5 6 2 8 1 cola2 -> 3 7 2 19 2 Salida -> 3 5 6 2 7 2 8 1 19 2
Me podeis dar una pista de como hacerlo? Creo que no es muy dificil pero cuando se esta empezando cuesta. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 11
Ha aumentado su posición en 5 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

RE:algoritmo de encolamiento

Publicado por aaaa (318 intervenciones) el 29/08/2003 19:20:49
Hola! Puedes hacer esto: juntar las 2 colas en 1 sola y luego aplicarle algun algoritmo de ordenamiento como el de burbuja que para un arreglo normal seria asi:

for (i=1;i<x;i++)
{
for (j=x-1;j>=i;j--)
{
if (arreglo[j-1]>arreglo[j])
{
aux=arreglo[j-1];
arreglo[j-1]=arreglo[j];
arreglo[j]=aux;
}
}
}

O si hay algoritmos para intercalar 2 arreglos solo que estan más dificiles y largos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha aumentado su posición en 5 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

RE:algoritmo de encolamiento

Publicado por aaaa (318 intervenciones) el 29/08/2003 19:23:36
O en vez de juntar las 2 colas en 1 sola, las puedes pasar a un arreglo y aplicar la burbuja (el código que te pase) y luego del arreglo que ya va quedar ordenado pasarlos a una nueva cola. Pero si lo tienes con las 2 colas directamente mandame un mail y te mando un programa que ordena 2 arreglos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:algoritmo de encolamiento

Publicado por Reapeer (2 intervenciones) el 30/08/2003 14:32:04
Gracias por contestar. El otro dia me vino la inspiracion y se me ocurrió el algoritmo. El programa funciona aunque no se si el codigo fuente está optimizado. Aqui esta el codigo de la funcion que ordena las colas:

int servicio(int cola[numero_colas][max_elementos], int cabeza_cola[numero_colas*max_elementos])
{
int i=0,j=0,k;

for(k=0;k<numero_colas*max_elementos;k++)
{
if(cola[0][i] <= cola[1][j]) {

cabeza_cola[i+j]=cola[0][i];
i++;
if(i==max_elementos)
{
while(j<max_elementos-1)
{
cabeza_cola[i+j]=cola[1][j];
j++;
}
}
}
else
{
cabeza_cola[i+j]=cola[1][j];
j++;
if(j==max_elementos)
{
while(i<max_elementos-1)
{
cabeza_cola[i+j]=cola[0][i];
i++;
}
}
}
}
}

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar