Saludos tengo que codificar algunos codigos de ordenamiento y despues me pide que los compare de acuerdo a su tiempo de ejecucion, ya sea para un array de 1000, 10000 o 1000000, los codigos ya los tengo hechos
BURBUJA
Código
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
void Ordenacion_Burbuja(int v[],int n);
int main()
{
int i,n,v[MAX];
printf("Dame el numero de elementos del vector: ");
muchas gracias a ambos por sus respuestas, una ultima duda el profesor me pidio que comparara los tiempos de ejecucion de los algoritmos con vectores de tamanio que va desde el 10 hasta el millon!!!! y eso me parece demasiado estarle ingresando numerito por numerito, creen que es mejor crear un archivo que ya tenga los numeros y despues ya que abra el archivo y los ordene o que otra opcion hay???
En estos caso se suele hacer que se inicialice de manera aleatoria, asignando números aleatorios con rand() en un ciclo que recorra el array de elementos.
xiruko yo tambien pensaba que con la funcion rand() seria todo mas facil, pero el profesor me dijo que tengo que utilizar archivos ordenados, inversamente ordenados y aleatorios, de 10, 100,1000,10000,100000,1'000,000, y ps como las cantidades son tan grandes no puedo ingresarle numero por numero y como son ordenadas y no solo aleatorias no puedo usar el rand(),voy a tener que usar archivos, pero yo todavia estoy muy verde en eso.
Estaba pensando que en un archivo.txt meterle los numeros y despues irlos leyendo o algo asi pero la verdad no se muy bien como le voy a hacer
el profesor me dijo que tengo que utilizar archivos ordenados, inversamente ordenados y aleatorios, de 10, 100,1000,10000,100000,1'000,000, y ps como las cantidades son tan grandes no puedo ingresarle numero por numero y como son ordenadas y no solo aleatorias no puedo usar el rand(),voy a tener que usar archivos, pero yo todavia estoy muy verde en eso.
Ese programa no va a funcionar ya que tiene varios errores, algunos de ellos graves. Por ejemplo declaras una estructura con un solo campo lo que no tiene caso, declaras un array de estructuras pero la función espera un array de enteros (tipo int), declaras un array de 5 elementos pero tratas de utilizarlo para procesar mas números de los que puede almacenar, no es necesario incluir el encabezado <unistd.h>, etc.
Un saludo
En línea
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
saludos rir3760 le hice algunos cambios al codigo le puse que me leyera los elemento que tengo en un archivo de texto y me los guardara en un arreglo que luego le voy a pasar a la funcion Ordenacion_burbuja para que me los ordene y en esa misma funcion con un fwrite le digo que me imprima en otro archivo el arreglo ya ordenado el problema es que me imprime basura en el archivo Analisis_algoritmos, que es el que cree para que se escribiera en el
Sin animo de molestar pero ya en varias ocasiones te he indicado que: 1) No es necesario incluir el encabezado <unistd.h>. 2) No se debe utilizar la función feof para controlar un bucle.
Revisando el programa un error se encuentra en la función:
Código
void Ordenacion_Burbuja(long v[],long n, FILE *fd)
Ahí indicas que el tamaño del elemento es igual a "sizeof(int)" cuando debería ser "sizeof(long)".
Ademas de eso por alguna extraña razón lees los numeros con fscanf (texto con formato) y los escribes con fwrite (bytes "crudos"). Deberías utilizar el mismo modo (de preferencia texto con formato) y publicar ejemplos de los archivos de entrada y salida.
Un saludo
En línea
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language