Você está na página 1de 2

FACULDADE METROPOLITANA DA GRANDE FORTALEZA

LAB2-Tempo de performance de um algoritmo


LAB 2 AP1 Estruturas e Procedimentos em C
No cdigo em C abaixo, faa o que se pede:

Explique o que esse cdigo realiza

Comente as linha de comando dentro da funo principal

O que ocorre se ns digitarmos uma posio no existente do vetor?

Verifique o grau de complexidade do algoritmo pelo princpio do pior caso

Implemente para que o usurio decida o tamanho do vetor

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int main( ) {
int vetor[100], posicao, i, n, valor;
system("cls");
printf("Entre com o numero de elementos do
vetor\n");
scanf("%d", &n);
printf("Entre com %d elementos\n", n);
for (i = 0; i< n; i++)
scanf("%d", &vetor[i]);

Uma maneira de determinar o tempo de execuo de um algoritmo definir esse algoritmo como
sendo uma funo fora do escopo da funo principal que chama esta funo e atravs de
mtodos e estruturas de tempo cedidas pelo sistema pode-se calcular o tempo de processo. O
algoritmo da funo e a funo principal para estimar o tempo que leva o processo.

void funcao( ) {
printf("funcao( ) inicia \n");
int P[3][3], A[3][3], B[3][3];
for(i=0;i< i++){
for(j=0;j<n; j++){
P[i, j] =0;
for(k=0;k<n;k++){
P[i,j] = P[i,j] + A[i,k] * B[k,j] }}}
}

printf("Entre com uma posio desse


vetor\n");
scanf("%d", &posicao);
printf("Entre com o valor inteiro
aleatorio\n");
scanf("%d", &valor);
for (i = n - 1; i >= posicao - 1; i--)
vetor[i+1] =vetor[i];
vetor[posicao-1] = valor;
printf("Vetor resultante %c\n",130);
for (i = 0; i <= n; i++)
printf("%d\n", vetor[i]); getch(); }

#include <time.h>
#include <stdio.h>
int main()
{ clock_t t;
t = clock();
funcao( );
t = clock( ) - t;
double tempo_tomado = ((double)t)/CLOCKS_PER_SEC;
printf("funcao( ) levou %f segundos para executar\n",
tempo_tomado);
return 0;}

Compile e execute para eventuais problemas de sintaxe

Determine o tempo de processo do algoritmo funcao( )

Qual objetivo do algoritmo funcao( ) ?

Comente cada linha de comando do algoritmo funcao( )

Determine o grau de complexidade do algoritmo funcao ( ) pelo princpio do pior caso

Modifique o tamanho para matrizes 5x5 e determine o tempo de processo

No algoritmo a seguir faa o que se pede:


1. Compile e execute para eventuais problemas
2. Explique o que o algoritmo realiza
3. Comente cada linha de comando interno a funo principal
4. Determine o grau de complexidade usando o princpio do pior caso
5. Compare o tempo de execuo desse algoritmo com o do algoritmo anterior
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main( ) {
int a[100], pos, i, n, item;
system (cls);
printf("Entre com o numero de elementos do
vetor\n");
scanf("%d", &n);
printf("Entre com %d elementos\n", n);
for (i = 0; i< n; i++)

scanf("%d", &a[i]);
printf("Entre com uma posio
existente no vetor\n");
scanf("%d", &pos);
for (i = pos-1;i<n;i++)
a[i] = a[i+1];
printf("O
vetor

resultante

%c\n",130);
for (i = 0; i <n-1; i++)
printf("%d\n", a[i]);
getch(); }

Escreva um programa em C para multiplicao entre duas matrizes para

Comente cada linha de comando interno a funo principal

Determine o grau de complexidade usando o princpio do pior caso

Compare o tempo de execuo desse algoritmo com o do algoritmo anterior

Questionrio
1. Considere o algoritmo que implementa o seguinte processo: uma coleo desordenada de
elementos dividida em duas metades e cada metade utilizada como argumento para a
reaplicao recursiva do procedimento. Os resultados das duas reaplicaes so, ento,
combinados pela intercalao dos elementos de ambas, resultando em uma coleo
ordenada. Qual a complexidade desse algoritmo.

Josmirandadasilvafilho