Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 30

[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 1
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 2
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 3
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 4
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 5
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 6
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 7
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 8
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 9
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 10
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 11
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 12
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 13
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 14
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 15
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 16
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 17
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 18
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 19
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 20
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 21
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 22
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

Practical : 4
Aim : Implementation and Time analysis of factorial program using
iterative and recursive method.

Source code :
#include<stdio.h>

#include<iostream>

#include<time.h>

#include<math.h>

#include<stdlib.h>

long double recursive(int x);

long double iterative(int x);

long int fact(int x);

using namespace std;

int main()

int b[12]={8,17,26,35,44,53,62,71,88,107,116,2222};

int i,j,k,n;

int a[100000];

cout<<"=======================================================
=========="<<endl;

150110107032 23
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

cout<<"\t\t\tFactorial"<<endl;

cout<<"=======================================================
=========="<<endl;

cout<<"VALUES\t\tRECURSIVE METHOD\t\tITERATIVE
METHOD"<<endl<<endl;

cout<<"=======================================================
=========="<<endl;

for(i=0;i<12;i++)

int x=b[i];

cout<<x<<"\t\t\t"<<recursive(x)<<"\t\t\t\t"<<iterative(x)<<endl;

cout<<"=======================================================
=========="<<endl;

long double recursive(int x)

clock_t t1,t2;

long int i;

t1=clock();

i=fact(x);

t2=clock();

return((long double)(t2-t1)/CLK_TCK);

long double iterative(int x)

clock_t t1,t2;

150110107032 24
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

long int temp=1;

t1=clock();

for(int i=x;i>=1;i--)

temp=temp*i;

t2=clock();

return((long double)(t2-t1)/CLK_TCK);

long int fact(int x)

if(x==1)

return 1;

else

return(x*recursive(x-1));

Output: -

150110107032 25
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

Practical : 5
Aim : Implementation of a knapsack problem using dynamic problem.

Source code :
#include<stdio.h>

#include<conio.h>

#define MAX 20

void knapsackDP(int,int);

int max(int,int);

void backtracking();

int weight[MAX],value[MAX],W,no,*x;

int v[MAX][MAX];

void main()

int i,j;

printf("\nEnter number of Objects :");

scanf("%d",&no);

150110107032 26
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

printf("\nEnter Weight and Values in ascending order of Values");;

for(i=1;i<=no;i++)

printf("\nEnter Weight and Value for Object %d :",i);

scanf("%d %d",&weight[i],&value[i]);

printf("\nEnter knapsack Capacity :");

scanf("%d",&W);

knapsackDP(no,W);

backtracking();

void knapsackDP(int no,int W)

int i,j;

for(i=0;i<= W ;i++)

v[0][i]=0;

for(i=0;i<= no;i++)

v[i][0]=0;

for(i=1;i<= no;i++)

for(j=1;j<= W;j++)

if((j-weight[i])< 0)

150110107032 27
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

v[i][j]=v[i-1][j];

else

v[i][j]=max(v[i-1][j],v[i-1][j-weight[i]]+value[i]);

printf("\n \t ");

for(i=0;i<= W;i++)

printf("%2d ",i);

printf("\n--------------------------------------------------------------------------------------------
------------------------------------");

for(i=0;i<=no;i++)

printf("\n w%d=%2d v%d=%2d |",i,weight[i],i,value[i]);

for(j=0;j<= W;j++)

printf("%2d ",v[i][j]);

printf("\n-----------------------------------------------------------------------------------
---------------------------------------------");

printf("\n Maximum value carry by knapsack is:%2d",v[no][W]);

printf("\n-----------------------------------------------------------------------------------
---------------------------------------------");

int max(int a,int b)

return (a >b)?a:b;

150110107032 28
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

void backtracking()

int j1,i;

j1=W;

printf("\nIncluded Object \t weight \t value");

printf("\n--------------------------------------------------");

for(i=no;i >=0;i--)

if(v[i][j1]!=v[i-1][j1] && (v[i][j1]==v[i-1][j1-weight[i]]+value[i]))

printf("\n%2d \t\t\t %2d \t\t %2d",i,weight[i],value[i]);

j1=j1-weight[i];

Output: -

150110107032 29
[ANALY SIS AND DESIGN O F ALGO RITH MS ] 2150703

150110107032 30

You might also like