Sábado 9 de Noviembre de 2024, 03:29
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Alguien Sabe????
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Alguien Sabe???? (Leído 2146 veces)
RaYBacK
Nuevo Miembro
Mensajes: 8
Alguien Sabe????
«
en:
Jueves 3 de Junio de 2004, 05:07 »
0
Hola comunidad.... tengo un problema q esperoo q me ayuden pq es de suma urgencia.... tengo q desarrollar un programa en c con al menos cinco metodos de ordenamiento, generados a travez de numeros aleatorios (minimo 5000) y q me entregue de cada ordenamiento el tiempo q se demora en ordenarlo, el numero de comparaciones e intercambios.... si alguien sabe por favor q me ayude pq es super importante......desde ya muchas gracias....
Tweet
Blag
Moderador
Mensajes: 697
Re: Alguien Sabe????
«
Respuesta #1 en:
Jueves 3 de Junio de 2004, 05:23 »
0
Disculpa RaYBacK, pero aquí no le hacemos las tareas a nadie......Si has avanzado algo y te has quedado estancado, entonces postea tu código para ayudarte.....Pero si no has hecho nada, mejor comienza a hacerlo porque nadie lo va a hacer por ti.
Saludos,
Blag
Alvaro Tejada Galindo
Consultor ABAP Senior - Freelancer
SinglePath's Experimental HomePage
Revista "Código Latino"
Blag's Blogs en SDN
Lenguajes Script y SAP
Mi Blog Personal
RaYBacK
Nuevo Miembro
Mensajes: 8
Re: Alguien Sabe????
«
Respuesta #2 en:
Viernes 4 de Junio de 2004, 05:04 »
0
hola compadre gracias por responder al mensaje.... no es po r na pero yo no estoy pidiendo q me hagan la tarea, en mi mensaje decia claramente q necesito ayuda pq no tengo la mas minima idea de como hacerlo y he estado haciendo lo de los ordenamientos.... ahi se muestra mas o menos lo q tengo q hacer.........
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define TAM 5000
#define SALIR '7'
void menu();
int leer_opcion(void);
void generar (int arreglo[]);
void mostrar (int arreglo[]);
void burbuja (int arreglo[]);
void seleccion (int arreglo[]);
int menor (int arreglo[], int desde);
void insercion (int arreglo[]);
void quicksort (int arreglo[]);
void ord_rap (int arreglo[], int inf, int sup);
void main()
{
int lista[TAM];
int copia_arreglo[TAM];
char opcion = 0;
generar(lista);
while (opcion != SALIR)
{
menu();
opcion = leer_opcion();
switch (opcion)
{
case '1':
generar(lista);
clrscr();
printf ("\n\n\tSe generaron los siguientes elementos:\n");
mostrar (lista);
break;
case '2':
clrscr();
printf ("\n\n\tLos elementos del arreglo son:\n");
mostrar (lista);
break;
case '3':
burbuja (lista);
break;
case '4':
insercion (lista);
break;
case '5':
quicksort (lista);
break;
case '6':
seleccion (lista);
break;
}
}
}
void menu()
{
clrscr();
printf ("\n\n\t\t\t\t Menu:\n\n\n");
printf ("\n\t\t\t1) Generar los elementos.");
printf ("\n\t\t\t2) Mostrar los elementos.");
printf ("\n\t\t\t3) Ordenamiento Burbuja.");
printf ("\n\t\t\t4) Ordenamiento por Insercion.");
printf ("\n\t\t\t5) Ordenamiento por Quicksort.");
printf ("\n\t\t\t6) Ordenamiento por Seleccion." );
printf ("\n\t\t\t7) Salir.");
printf ("\n\n\t\t\t Ingrese la opcion : ");
}
int leer_opcion(void)
{
char opcion;
opcion = getchar();
while (opcion < '1' || opcion > SALIR)
{
opcion = getchar();
}
return opcion;
}
void generar (int lista[])
{
int i;
srand ((unsigned) time(NULL));
for (i=0; i<TAM; i++)
lista
= rand()%TAM;
}
void mostrar (int lista[])
{
int i;
for (i=0; i<TAM; i++)
printf ("\n\tnumero[%2d] = %d", i, lista
);
printf ("\n\n\t");
printf("Presione una tecla para volver al Menu: ");
getch();
}
void burbuja (int lista[])
{
int i, j;
int temp;
for (i=1; i<TAM; i++)
for (j=0; j<TAM - i; j++)
if (lista[j] > lista[j+1])
{
temp = lista[j];
lista[j] = lista[j+1];
lista[j+1] = temp;
}
clrscr();
printf ("\n\n\tOrdenamiento burbuja.");
printf ("\n\tEl arreglo ordenado es:\n");
mostrar (lista);
}
void seleccion (int lista[])
{
int i;
int temp, pos_men;
for (i=0; i<TAM - 1; i++)
{
pos_men = menor(lista, i);
temp = lista
;
lista
= lista [pos_men];
lista [pos_men] = temp;
}
clrscr();
printf ("\n\n\tOrdenamiento por selecci¢n.");
printf ("\n\tEl arreglo ordenado es:\n");
mostrar (lista);
}
int menor (int lista[], int desde)
{
int i, menor;
menor = desde++;
for (i=desde; i<TAM; i++)
if (lista
< lista[menor])
menor = i;
return menor;
}
void insercion (int lista[])
{
int i, j, temp;
for (i=1; i<TAM; i++)
{
temp = lista
;
j = i - 1;
while ( (lista[j] > temp) && (j >= 0) )
{
lista[j+1] = lista[j];
j--;
}
lista[j+1] = temp;
}
clrscr();
printf ("\n\n\tOrdenamiento por inserci¢n.");
printf ("\n\tEl arreglo ordenado es:\n");
mostrar (lista);
}
void quicksort (int lista[])
{
ord_rap (lista, 0, TAM - 1);
clrscr();
printf ("\n\n\tOrdenamiento por Quicksort.");
printf ("\n\tEl arreglo ordenado es:\n");
mostrar (lista);
}
void ord_rap (int lista[], int inf, int sup)
{
int elem_div = lista
;
int temp ;
int i = inf - 1, j = sup;
int cont = 1;
if (inf >= sup)
return;
while (cont)
{
while (lista[++i] < elem_div);
while (lista[--j] > elem_div);
if (i < j)
{
temp = lista
;
lista
= lista[j];
lista[j] = temp;
}
else
cont = 0;
}
temp = lista
;
lista
= lista
;
lista
= temp;
ord_rap (lista, inf, i - 1);
ord_rap (lista, i + 1, sup);
}
eso es loq llevo avanzao y me falta un metodo mas..... ahora si espero q me puedas ayudar y los q tienen conocimiento tb.... saludos
mabrev
Miembro MUY activo
Mensajes: 126
Re: Alguien Sabe????
«
Respuesta #3 en:
Viernes 4 de Junio de 2004, 13:49 »
0
Tampoco era necesario poner todo el código, no hay que ser tan escueto como al principio ni tan explícito como ahora. Lo mejor es que pongas el fragmento de código con el que tienes problemas, o que pidas sugerencias para hacer cosas concretas. Yo todavía no tengo muy claro cuál es tu problema, necesitas otro método de ordenación??, no sabes como contar el tiempo o los movimientos??
Espero que especifiques un poco más lo que necesitas para que podamos echarte una mano.
Saludos.
RaYBacK
Nuevo Miembro
Mensajes: 8
Re: Alguien Sabe????
«
Respuesta #4 en:
Viernes 4 de Junio de 2004, 23:13 »
0
hola loco gracias por responder...... mi principal problema radica en q no tengo idea en colocar el tiempo y la cantidad de intercambios y de comparaciones q se realizan en los metodos de ordenamiento, por ejemplo despues q se haya ordenado la lista en el burbuja al final tiene q entregar el numero de comparaciones, intercambios y e l tiempo q se demoro en ordenarlos.............he tratado pero no me resulta nada, soy principiante en esto y no se como hacerlo.... espero q me ayuden....
QliX=D!
Miembro MUY activo
Mensajes: 214
Re: Alguien Sabe????
«
Respuesta #5 en:
Viernes 4 de Junio de 2004, 23:48 »
0
El tiempo antes y despues de llamar a las funciones.
La cantidad de intercambios las sacas por la teoria de cada metodo, no en la practica por que te ralentiza el proceso.
QliX=D! - From the top of Tsunami
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Alguien Sabe????