Professional Documents
Culture Documents
NAME Naman Jain BRANCH Computer Science Engineering (CS2) ENROLLMENT NUMBER 0818CS201103 SUBJECT Analysis Design of Algorithm
NAME Naman Jain BRANCH Computer Science Engineering (CS2) ENROLLMENT NUMBER 0818CS201103 SUBJECT Analysis Design of Algorithm
5 Write a program to 9 - 11
implement Strassen’s
Matrix Multiplication.
6 Write a program to 12 - 13
implement Optimal
Merge Pattern.
INDORE INSTITUTE OF SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND ENGINEERING DEPARTMENT
EXPERIMENT 1 :
Source Code :
#include<iostream> using
namespace std;
int main(){
cin>>n;
cin>>arr[i];
int h=n-1;
cin>>value;
while(l<=h){ int
mid=(l+h)/2;
if(arr[mid]==value){
flag=1;
break;
else if(value>arr[mid]){
l=mid+1;
else{ h=
mid-1;
if(flag==0){
return 0;
Output:
EXPERIMENT 2 :
Source code :
#include<iostream>
f=0;
if(l>h){
if(f==0){
return;
int mid=(l+h)/2;
if(arr[mid]==value){
f=1;
return;
if(value>arr[mid]){
else{
} int
main(){
int n;
cout<<"Enter elements:
int value;
cin>>value;
return 0;
Output:
EXPERIMENT 3:
Source Code:
#include<iostream> using
namespace std;
int i, j, k;
i=l;
j=mid+1; k=l;
int temp[100];
if(arr[i]<arr[j]){
temp[k]=arr[i];
i++; k++;
else{
temp[k]=arr[j];
j++; k++;
while(i<=mid){
temp[k]=arr[i];
i++;
k++;
while(j<=h){
temp[k]=arr[j];
j++;
k++;
i++){
arr[i]=temp[i]
mergesort(arr, l, mid);
n){
cout<<arr[i]<<" ";
cout<<endl;
} int
main(){
cin>>n;
i<n; i++){
cin>>arr[i];
print(arr, n);
return 0;
Output:
EXPERIMENT 4:
Sourcecode:
#include<iostream> using
namespace std;
int
pivot=arr[l]; int
temp;
do{ while(arr[i]<=pi
vot){
i++;
while(arr[j]>pivot){
j--;
if(i<j){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
while(i<j);
temp=arr[l];
arr[l]=arr[j];
arr[j]=temp; return j;
int pi;
if(l<h){
pi=partition(arr, l, h);
quicksort(arr,
n){
cout<<arr[i]<<" ";
cout<<endl;
} int
main(){
int n;
cin>>n;
i<n; i++){
cin>>arr[i];
print(arr, n);
return 0;
EXPERIMENT 5:
Sourcecode: #include
<iostream> using
namespace std;
cin>>r1;
cin>>c1;
cin>>r2;
cin>>c2;
cin>>a[i][j];
cin>>b[i][j];
} display(a,r1,c1);
display(b,r2,c2);
return 0;
void multiply(int a[5][5], int b[5][5], int row, int col, int c1)
c[i][j]=0;
c[i][j]+=a[i][k]*b[k][j];
return 0;
Output:
EXPERIMENT 6:
if((c[k-1]+a[i])<=(a[i]+a[i+1]))
{ c[k]=c[k-
1]+a[i]; } else {
c[k]=a[i]+a[i+1];
i=i+2;
while(i<n)
{ k+
+;
if((c[k-1]+a[i])<=(c[k-2]+a[i]))
{ c[k]=c[k-1]+a[i];
} else { c[k]=c[k-
2]+a[i]; } i++; } }
i++; } k++;
c[k]=c[k-1]+c[k-
2];
for(k=0;k<n-1;k++) { l=l+c[k];
Output: