0% encontró este documento útil (0 votos)
12 vistas8 páginas

Wuolah Free Sesión 2 Resuelta

Cargado por

mitaboada
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
12 vistas8 páginas

Wuolah Free Sesión 2 Resuelta

Cargado por

mitaboada
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

sesion 2 resuelta

stevejobs22

Estructura de Datos y Algoritmos I

2º Grado en Ingeniería Informática

Facultad de Ciencias
Universidad de Salamanca

Reservados todos los derechos.


No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
/*
* algoritmos.c
*
* Created on: 07/10/2013
* Author: MJ Polo
*/
#include <math.h>
#include "algoritmos.h"
// Orden cuadrático
void algA(int n)
{ int i,j,c;

c = 1;
for (i=1;i<=n;i++){
for (j=1;j<=n;j++) {
c = c + 1;
}
}
}

void algB(int n){


int i,j,k,c;
c = 1;
for (i=1;i<=n;i++){
for (j=1;j<=n;j++) {
for(k=1;k<=2;k++){
c = c + 1;
}
}
}
}

void algC(int n) {
int i,j,k,c;

c=1;
for (i=1; i<=n; i++) {
for (j=1; j<=(n*n); j++) {
for (k=1; k<=(n*n*n); k++) {
c = c + 1;
}
}
}

void algD(int n) {
int i,j,c;

c=1;
for (i=1; i<=n; i++) {
for (j=1; j<=i; j++) {
c = c + 1;

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6380405

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
}
}
}

void algE(int n) {
int i,j,k,c;

c=1;
for (i=1; i<=n; i++) {

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
for (j=1; j<=n; j++) {
for (k=1; k<=j; k++) {
c = c + 1;
}
}
}
}

void algF(int n) {
int i,j,k,c;

c=1;
for (i=1; i<=n; i++) {
for (j=1; j<=i; j++) {
for (k=1; k<=j; k++) {
c = c + 1;
}
}
}
}

void algG(int n) {
int j,x;

x=0;
j=n;
while (j>=1) {
x = x + 1;
j = j % 2;
}
}

void algH(int n) {
int j,x;

x=0;
j=n;
while (j>=1) {
x = x + 1;
j = j % 3;
}
}

void algI(int n) {

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6380405

si lees esto me debes un besito


Estructura de Datos y Algori...
Banco de apuntes de la
int i,j,x;

x=0;
j=n;
do {
j = 1;

while (j<=i) {
x = x + 1;

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
j = j * 2;
}
i = i + 1;
}while ( i <= n);
}

void algJ(int n) {
int i,j,x;

x=0;
i=1;
do {
j = 1;

while (j<=i) {
x = x + 1;
j = j + 2;
}
i = i + 1;
}while ( i <= n);
}

void algK(int n) {
int i,j,x;

x=0;
i=1;

while (i<n) {
for (j=1; j<=i; j++) {
x = x + 1;
}
i = i * 10;
}
return x;

/*
* algoritmos.h
*
* Created on: 07/10/2013
* Author: MJ Polo
*/

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6380405

si lees esto me debes un besito


#ifndef ALGORITMOS_H_INCLUDED
#define ALGORITMOS_H_INCLUDED
#define MIN_T 10 * CLOCKS_PER_SEC
#define MIN_REP 5

void algA(int n);


void algB(int n);
void algC(int n);
void algD(int n);
void algE(int n);
void algF(int n);
void algG(int n);
void algH(int n);
void algI(int n);
void algJ(int n);

#endif // ALGORITMOS_H_INCLUDED

# Proyecto Práctica 1 - Sesión 2

medirTiempos: medirTiempos.c algoritmos.o


gcc -g medirTiempos.c algoritmos.o -o medirTiempos
algoritmos.o: algoritmos.c algoritmos.h
gcc -c -g algoritmos.c
clean:
rm *.o

/*
* medirTiempos.c Procedimiento general para medir tiempos de ejecución a diferetes algortimos en
funcion
* del "tamaño"
*
* Created on: 29/09/2014
* Author: M.J. Polo
*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "algoritmos.h"

int main(int argc, char *argv[])


{
//clock_t tiempoInicial , tiempoFinal ;
double tiempo,tiempoInicial , tiempoFinal, tiempoMinimo=10*CLOCKS_PER_SEC ;

int n,i,repeticiones=0;

FILE *f;

if (argc != 2) {
printf("\n Uso: ./medirTiempos <nombre fichero resultados>\n\n");
return -1;

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6380405

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
}

f = fopen(argv[1], "w+");
fprintf(f,"n;tiempoMedio\n");

for (n=5000;n<=50000;n=5000+n) {
repeticiones=contadorInterno=contadorExterno=0;
tiempoInicial = tiempoFinal= (double)clock();

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
while ((tiempoFinal-tiempoInicial < MIN_T) || (repeticiones < MIN_REP))
{ algA(n) ;
repeticiones++;
tiempoFinal = (double)clock();
}

tiempo = (tiempoFinal - tiempoInicial ) / CLOCKS_PER_SEC /repeticiones;


printf("\n %d \t %e \t %ld \t %ld",
n,tiempo,contadorExterno/repeticiones,contadorInterno/repeticiones);
fprintf(f,"\n %d \t %e \t %ld \t %ld",
n,tiempo,contadorExterno/repeticiones,contadorInterno/repeticiones);

}
fclose(f);

return 0;
}

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-6380405

si lees esto me debes un besito

También podría gustarte