DAA File Format
DAA File Format
Practical-1
Implement and Analyze Given
Algorithms
1
DAA 16CE068
Program 1: Factorial(Iterative)
Code:
#include<stdio.h>
int main()
int n;
int f=1;
int i=1;
int count=0;
count++;
scanf("%d",&n);
while(i!=n+1)
f=f*i;
i++;
count++;
};
printf("%d",f);
2
DAA 16CE068
Output:
Table:
No of
instructions count
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
Graph:
3
DAA 16CE068
4
DAA 16CE068
Factorial(Recursive)
Code:
#include<iostream>
int fact(int n)
if(n==1)
return 1;
int f=n;
count=0;
f=f*fact(f-1);
count++;
return f;
int main()
int n;
cin>>n;
cout<<x;
cout<<"count is"<<count;
5
DAA 16CE068
Output:
Table:
input count
4 5
9 10
14 15
19 20
24 25
Graph:
Code:
#include<iostream>
int main(){
int x = 0, y = 1, z, i, n, count = 0;
cin>>n;
for(i=0;i<n;i++){
count++;
if(i == 0)
cout<<0<<"\t";
else if(i == 1)
cout<<1<<"\t";
else{
z = x + y;
x = y;
y = z;
cout<<z<<"\t";
} }
7
DAA 16CE068
Output:
Table:
input count
1 1
2 2
3 3
4 4
5 5
Graph:
Program 1: Factorial(Recursive)
Code:
8
DAA 16CE068
#include<iostream>
int count;
int fibonacci(int n)
if((n==1)||(n==0))
return(n);
else
count++;
return(fibonacci(n-1)+fibonacci(n-2));
int main()
int n,i=0;
cin>>n;
9
DAA 16CE068
while(i<n)
cout<<" "<<fibonacci(i);
i++;
cout<<"Count is"<<count;
return 0;
Output:
Table:
input count
5 7
10
DAA 16CE068
10 133
15 1581
20 17690
25 196392
Graph:
Code:
11
DAA 16CE068
#include<iostream>
int main()
int n,m;
int count=0;
cin>>n;
cin>>m;
int a[n][m];
int b[n][m];
int c[n][m];
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>a[i][j];
for(int i=0;i<n;i++)
12
DAA 16CE068
for(int j=0;j<m;j++)
cin>>b[i][j];
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
c[i][j]=a[i][j]+b[i][j];
count++;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cout<<c[i][j]<<" ";
cout<<"\n";
cout<<"count is "<<count;
13
DAA 16CE068
Output:
Table:
input input
size a size b count
1 1 1
2 2 4
3 3 9
4 4 16
5 5 25
Graph:
14
DAA 16CE068
Matrix Multiplication(Iterative)
15
DAA 16CE068
Code:
#include <iostream>
int count;
int main()
while(true){
cout << "Enter rows and columns for first matrix: ";
cout << "Enter rows and columns for second matrix: ";
while (c1!=r2)
cout << "Error! column of first matrix not equal to row of second.";
cout << "Enter rows and columns for first matrix: ";
16
DAA 16CE068
cout << "Enter rows and columns for second matrix: ";
cout << endl << "Enter elements of matrix 1:" << endl;
count++;
cout << "Enter element a" << i + 1 << j + 1 << " : ";
cout << endl << "Enter elements of matrix 2:" << endl;
count++;
cout << "Enter element b" << i + 1 << j + 1 << " : ";
17
DAA 16CE068
count++;
mult[i][j]=0;
count++;
if(j == c2-1)
18
DAA 16CE068
count=0;
return 0;
Output:
Table:
19
DAA 16CE068
Graph:
20
DAA 16CE068
Code:
/* Recursive function to search x in arr[l..r] */
#include<iostream>
#include<stdio.h>
int count;
if (r < l)
count++;
return -1;
if (arr[l] == x)
count++;
return l;
count++;
int main()
21
DAA 16CE068
int no;
cin>>no;
int arr[no], i;
cout<<"ENTER ELEMENTS"<<endl;
for(int i=0;i<no;i++)
cin>>arr[i];
int n = sizeof(arr)/sizeof(arr[0]);
int x ;
cin>>x;
if (index != -1)
else
return 0;
Output:
22
DAA 16CE068
Table:
Worst Case
input count
1 1
2 2
3 3
4 4
5 5
Best Case
input count
1 1
2 1
3 1
4 1
5 1
Graph:
23
DAA 16CE068
Worst case
Best case
24
DAA 16CE068
Code:
// C program to implement recursive Binary Search
#include <stdio.h>
#include<iostream>
// otherwise -1
int count;
if (r >= l)
// itself
if (arr[mid] == x)
{count++;
return mid;}
if (arr[mid] > x)
25
DAA 16CE068
{ count++;
// in right subarray
count++;
// present in array
return -1;
int main(void)
{ while(true){
int no;
cin>>no;
int arr[no], i;
cout<<"ENTER ELEMENTS"<<endl;
for(int i=0;i<no;i++)
{ cin>>arr[i]; }
26
DAA 16CE068
int n = sizeof(arr)/sizeof(arr[0]);
int x = 10;
result);
cout<<"COUNT IS"<<count;
count=0;
return 0;
Output:
Table:
27
DAA 16CE068
Worst Case
input count
1 1
2 2
3 2
4 3
5 3
6 3
7 3
8 4
9 4
10 4
Best Case
input count
1 1
2 2
3 2
4 3
5 3
6 3
7 3
8 4
9 4
10 4
Graph:
28
DAA 16CE068
Worst case
Best case
29
DAA 16CE068
Code:
#include<iostream>
#include<math.h>
int count=0;
{ count++;
int i;
for(i=1;i<=n;i++)
x[i]=0;
for(i=n;num!=0;i--)
{ x[i]=num%2;
num=num/2; }
int main()
int a[10];
int x[10];
int n,d,sum,present=0;
30
DAA 16CE068
int j;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>d;
if(d>0)
for(int i=1;i<=pow(2,n)-1;i++)
count++;
subset(i,n,x);
sum=0;
for(j=1;j<=n;j++)
if(x[j]==1)
sum=sum+a[j];
if(d==sum)
cout<<"Subset={";
present=1;
31
DAA 16CE068
for(j=1;j<=n;j++)
if(x[j]==1)
cout<<a[j]<<",";
cout<<"}="<<d;
cout<<"\n";
if(present==0)
Output:
32
DAA 16CE068
Table:
input count
5 62
10 2046
15 65534
20 2097150
25 67108862
Graph:
33
DAA 16CE068
Worst case for N number N comparisons are Can conclude after only
of elements required log2N comparisons
Conclusion:
Equation Complexity
34
DAA 16CE068
35