Professional Documents
Culture Documents
ADA Practical 09
ADA Practical 09
ADA Practical 09
Experiment-1
Aim: Implementation and Time analysis of sorting algorithms. Bubble sort,
Selection sort, and Insertion sort.
Bubble sort:
#include<stdio.h>
int main()
int i,j,temp,a[5];
scanf("%d",&a[i]);
if(a[j]>a[j+1]) {
temp=a[j+1];
a[j=1]=a[j];
a[j]=temp;
GMIT, Bhavnagar 1
ADA (3150703) 211290116062
printf("%d",a[i]);
return 0;
Output:
Time Analysis:
GMIT, Bhavnagar 2
ADA (3150703) 211290116062
Selection sort:
#include <stdio.h>
int main() {
int arr[10]={6,12,0,18,11,99,55,45,34,2};
int n=10;
position = i;
position = j;
if (position != i) {
swap = arr[i];
arr[i] = arr[position];
arr[position] = swap;
GMIT, Bhavnagar 3
ADA (3150703) 211290116062
printf("%d\t", arr[i]);
return 0;
Output:
Time Analysis:
GMIT, Bhavnagar 4
ADA (3150703) 211290116062
Insertion sort:
#include <stdio.h>
int i, key, j;
key = arr[i];
j = i - 1;
arr[j + 1] = arr[j];
j = j - 1;
arr[j + 1] = key;
int main() {
insertionSort(arr, n);
printf("\n");
return 0;
GMIT, Bhavnagar 5
ADA (3150703) 211290116062
Output:
Time Analysis:
GMIT, Bhavnagar 6
ADA (3150703) 211290116062
Experiment-2
Aim: Implementation and Time analysis of sorting algorithms. Merge
sort,Quick short
Merge short:
#include <stdio.h>
#define max 10
int a[11] = { 10, 14, 19, 26, 27, 31, 33, 35, 42, 44, 0 };
int b[10];
for(l1 = low, l2 = mid + 1, i = low; l1 <= mid && l2 <= high; i++)
b[i] = a[l1++];
else
b[i] = a[l2++];
b[i++] = a[l1++];
b[i++] = a[l2++];
a[i] = b[i];
GMIT, Bhavnagar 7
ADA (3150703) 211290116062
int mid;
sort(low, mid);
sort(mid+1, high);
} else {
return;
int main() {
int i;
sort(0, max);
GMIT, Bhavnagar 8
ADA (3150703) 211290116062
Output:
Time Analysis:
T(n) = 2*T(n/2) + n
a = 2, b = 2, f(n) =
E = log bª = log₂2 = 1
n ∈ O(n)
T(n) ∈ Θ(n*logn)
GMIT, Bhavnagar 9
ADA (3150703) 211290116062
Quick sort:
#include <stdio.h>
*a = *b;
*b = temp;
i++;
swap(&arr[i], &arr[j]);
return (i + 1);
quickSort(arr, pi + 1, high);
GMIT, Bhavnagar 10
ADA (3150703) 211290116062
int main() {
int n;
scanf("%d", &n);
if (n <= 0) {
return 1;
int arr[n];
scanf("%d", &arr[i]);
quickSort(arr, 0, n - 1);
GMIT, Bhavnagar 11
ADA (3150703) 211290116062
printf("\n");
return 0;
Output:
Time Analysis:
T(n) = 2*T(n/2) + n
a = 2, b = 2, f(n) =
n E = log bª
= log₂2= 1
Case 1: if f(n) ∈ O(nᴱ⁻ᵉ), for e>0,n ∈ O(n¹⁻¹),n ∈ O(n⁰) (case 1 does not match)
T(n) ∈ Θ(n*logn
GMIT, Bhavnagar 12
ADA (3150703) 211290116062
Experiment-3
Aim: Implementation and Time analysis of linear and binary search , linear
search algorithm
Binary serch:
#include<stdio.h>
#define MAX_SIZE 5
void binary_search(int[],int);
int main() {
scanf("%d", &arr_search[i]);
scanf("%d", &element);
binary_search(arr_search,element);
int f = 0, r = MAX_SIZE,mid;
while (f <= r) {
mid = (f+r)/2;
if (fn_arr[mid] == element) {
GMIT, Bhavnagar 13
ADA (3150703) 211290116062
break;
f = mid + 1;
else
r = mid - 1;
if (f > r)
Output:
Time Analysis:
GMIT, Bhavnagar 14
ADA (3150703) 211290116062
Linear Search:
#include <stdio.h>
if (arr[i] == target) {
int main() {
int n;
scanf("%d", &n);
if (n <= 0) {
return 1;
int arr[n];
scanf("%d", &arr[i]);
GMIT, Bhavnagar 15
ADA (3150703) 211290116062
int target;
scanf("%d", &target);
if (result != -1) {
} else {
return 0; }
Output:
Time Analysis:
GMIT, Bhavnagar 16
ADA (3150703) 211290116062
Experiment-4
Aim: Implementation and Time analysis of Heap sort Algorithme.
Heap sort:
#include <stdio.h>
*a = *b;
*b = temp;
int largest = i;
int left = 2 * i + 1;
int right = 2 * i +
2;
largest = left;
largest = right;
if (largest != i) {
swap(&arr[i], &arr[largest]);
heapify(arr, N, largest);
}
GMIT, Bhavnagar 17
ADA (3150703) 211290116062
swap(&arr[0], &arr[i]);
heapify(arr, i, 0);
printf("\n");
int main()
heapSort(arr, N);
printArray(arr, N);
GMIT, Bhavnagar 18
ADA (3150703) 211290116062
Output:
Time Analysis:
GMIT, Bhavnagar 19
ADA (3150703) 211290116062
Experiment-5
Aim: Implementation and Time analysis of factorial program using iterative
and recursive method
iterative method:
#include <stdio.h>
int main() {
int n, i;
scanf("%d", &n);
fact *= i;
return 0;
GMIT, Bhavnagar 20
ADA (3150703) 211290116062
Output:
Time Analysis:
GMIT, Bhavnagar 21
ADA (3150703) 211290116062
recursive method:
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
return 0;
if (n >= 1)
else
return 1;
GMIT, Bhavnagar 22
ADA (3150703) 211290116062
Output:
Time Analysis:
GMIT, Bhavnagar 23
ADA (3150703) 211290116062
Experiment-6
Aim:Implementation of a knapsack problem using dynamic programming.
knapsack:
void main() {
scanf("%d", &n);
scanf("%d", &m);
u = m;
x[i] = 0;
scanf("%d", &w[i]);
GMIT, Bhavnagar 24
ADA (3150703) 211290116062
scanf("%d", &p[i]);
temp = ratio[i];
ratio[i] = ratio[j];
ratio[j] = temp;
temp = w[i];
w[i] = w[j];
w[j] = temp;
temp = p[i];
p[i] = p[j];
p[j] = temp;
printf("Item:\t\t");
printf("%d\t", i + 1);
GMIT, Bhavnagar 25
ADA (3150703) 211290116062
printf("\nProfit:\t\t");
printf("%d\t", p[i]);
printf("\nWeights:\t");
printf("%d\t", w[i]);
printf("\nRATIO:\t\t");
printf("%d\t", ratio[i]);
if (w[i] <= u) {
x[i] = 1;
u = u - w[i];
break;
if (i <= n) {
xr = (float)u / w[i];
x[i] = xr;
GMIT, Bhavnagar 26
ADA (3150703) 211290116062
printf("\nX = [");
printf("]");
GMIT, Bhavnagar 27
ADA (3150703) 211290116062
Output:
GMIT, Bhavnagar 28
ADA (3150703) 211290116062
Experiment-7
Aim: Implement of chain matrix multiplication using dynamic programming.
#include<stdio.h>
#include<limits.h>
int m[n][n];
int i, j, k, L, q;
m[i][i] = 0;
j = i+L-1;
m[i][j] = INT_MAX;
if (q < m[i][j])
m[i][j] = q;
GMIT, Bhavnagar 29
ADA (3150703) 211290116062
return m[1][n-1];
int main()
int n,i;
scanf("%d",&n);
n++;
int arr[n];
for(i=0;i<n;i++)
scanf("%d",&arr[i]);
return 0;
GMIT, Bhavnagar 30
ADA (3150703) 211290116062
Output:
GMIT, Bhavnagar 31
ADA (3150703) 211290116062
Experiment-8
Aim: Implement of making achange problem using dynamic programming.
#include <stdio.h>
#include
<stdlib.h> int
main()
int m, n, i, j;
scanf("%d", &m);
scanf("%d", &n);
0;
scanf("%d", &dc[i]);
c[i][j] = 0;
GMIT, Bhavnagar 32
ADA (3150703) 211290116062
c[i][0] = 0;
c[0][i] = i;
c[i][j] = 0;
else
else
printf("\n \n");
GMIT, Bhavnagar 33
ADA (3150703) 211290116062
printf("\n");
i = n;
j = m;
while (i != 1)
i = i - 1;
else
j = j - dc[i];
printf("\n");
return 0;
GMIT, Bhavnagar 34
ADA (3150703) 211290116062
Output:
GMIT, Bhavnagar 35
ADA (3150703) 211290116062
Experiment-9
Aim: Implementation of a knapsack problem using greedy algorithm
knapsack :
#include <stdio.h>
#include
<stdlib.h> int
main()
int m, n, i, j;
scanf("%d", &m);
scanf("%d", &n);
int wt = 0, k = 0;
x[i] = 0;
printf("\nEnter weights\n");
scanf("%f", &w[i]);
GMIT, Bhavnagar 36
ADA (3150703) 211290116062
printf("\nEnter profits\n");
scanf("%f", &p[i]);
t1 = cal[i];
cal[i] = cal[j];
cal[j] = t1;
t2 = w[i];
w[i] = w[j];
w[j] = t2;
t3 = p[i];
p[i] = p[j];
p[j] = t3;
GMIT, Bhavnagar 37
ADA (3150703) 211290116062
k++;
x[i] = 1;
wt += w[i];
prof += p[i];
else
k++;
w[i] = m - wt;
wt = m;
break;
GMIT, Bhavnagar 38
ADA (3150703) 211290116062
return 0;
Output:
GMIT, Bhavnagar 39
ADA (3150703) 211290116062
Experiment-10
Aim:Implementation of Graph and Searching (DFS and BFS).
#include <stdio.h>
void dfs(int v)
int i;
reach[v] = 1;
dfs(i);
void main()
int i, j, count = 0;
GMIT, Bhavnagar 40
ADA (3150703) 211290116062
scanf("%d", &n);
reach[i] = 0;
a[i][j] = 0;
scanf("%d", &a[i][j]);
dfs(1);
printf("\n");
if (reach[i])
count++;
if (count == n)
else
GMIT, Bhavnagar 41
ADA (3150703) 211290116062
Output:
GMIT, Bhavnagar 42
ADA (3150703) 211290116062
Experiment-11
Aim: Implement prim’s algorithm.
prim’s algorithm:
#include<stdio.h>
#include<stdbool.h>
#define V 5
int G[V][V] = {
int main() {
int no_edge;
int selected[V];
no_edge = 0;
selected[0] = true;
int x;
int y;
printf("Edge : Weight\n");
GMIT, Bhavnagar 43
ADA (3150703) 211290116062
x = 0;
y = 0;
if (selected[i]) {
min = G[i][j];
x = i;
y = j;
selected[y] = true;
no_edge++;
return 0;
GMIT, Bhavnagar 44
ADA (3150703) 211290116062
Output:
GMIT, Bhavnagar 45
ADA (3150703) 211290116062
Experiment-12
Aim: Implement kruskal’s algorithm.
kruskal’s algorithm:
#include <stdio.h>
#define MAX 30
int u, v, w;
} edge;
edge data[MAX];
int n;
} edge_list;
edge_list elist;
int Graph[MAX][MAX], n;
edge_list spanlist;
void kruskalAlgo();
void sort();
void print();
void kruskalAlgo() {
elist.n = 0;
GMIT, Bhavnagar 46
ADA (3150703) 211290116062
if (Graph[i][j] != 0) {
elist.data[elist.n].u = i;
elist.data[elist.n].v = j;
elist.data[elist.n].w = Graph[i][j];
elist.n++;
sort();
belongs[i] = i;
spanlist.n = 0;
if (cno1 != cno2) {
spanlist.data[spanlist.n] = elist.data[i];
spanlist.n = spanlist.n + 1;
return (belongs[vertexno]);
GMIT, Bhavnagar 47
ADA (3150703) 211290116062
int i;
if (belongs[i] == c2)
belongs[i] = c1;
void sort() {
int i, j;
edge temp;
temp = elist.data[j];
elist.data[j + 1] = temp;
void print() {
int i, cost = 0;
GMIT, Bhavnagar 48
ADA (3150703) 211290116062
int main() {
int i, j, total_cost;
n = 6;
Graph[0][0] = 0;
Graph[0][1] = 4;
Graph[0][2] = 4;
Graph[0][3] = 0;
Graph[0][4] = 0;
Graph[0][5] = 0;
Graph[0][6] = 0;
Graph[1][0] = 4;
Graph[1][1] = 0;
Graph[1][2] = 2;
Graph[1][3] = 0;
Graph[1][4] = 0;
Graph[1][5] = 0;
Graph[1][6] = 0;
Graph[2][0] = 4;
Graph[2][1] = 2;
Graph[2][2] = 0;
GMIT, Bhavnagar 49
ADA (3150703) 211290116062
Graph[2][3] = 3;
Graph[2][4] = 4;
Graph[2][5] = 0;
Graph[2][6] = 0;
Graph[3][0] = 0;
Graph[3][1] = 0;
Graph[3][2] = 3;
Graph[3][3] = 0;
Graph[3][4] = 3;
Graph[3][5] = 0;
Graph[3][6] = 0;
Graph[4][0] = 0;
Graph[4][1] = 0;
Graph[4][2] = 4;
Graph[4][3] = 3;
Graph[4][4] = 0;
Graph[4][5] = 0;
Graph[4][6] = 0;
Graph[5][0] = 0;
Graph[5][1] = 0;
Graph[5][2] = 2;
GMIT, Bhavnagar 50
ADA (3150703) 211290116062
Graph[5][3] = 0;
Graph[5][4] = 3;
Graph[5][5] = 0;
Graph[5][6] = 0;
kruskalAlgo();
print();
Output:
GMIT, Bhavnagar 51
ADA (3150703) 211290116062
Experiment-13
Aim: Implement LCS problem.
LCS:
#include <stdio.h>
int l, k;
void main()
int i, j;
s1[0] = 0;
char ch = getchar();
s1[++l] = ch;
ch = getchar();
printf("Y = ");
s2[0] = 0;
char c1 = getchar();
GMIT, Bhavnagar 52
ADA (3150703) 211290116062
s2[++k] = c1;
c1 = getchar();
b[i][j] = 0;
c[i][j] = 0;
if (s1[i] == s2[j])
b[i][j] = 1; // diagonal
GMIT, Bhavnagar 53
ADA (3150703) 211290116062
b[i][j] = 2; // up
else
b[i][j] = 3; // left
printf("\n\n\t");
printf("\n");
printf("%c\t", s1[i]);
GMIT, Bhavnagar 54
ADA (3150703) 211290116062
printf("\n");
printf("\n\n");
printf("\n\n");
void lcs(int arr[l + 1][k + 1], char ar[l + 1], int a, int p)
if (a == 0 || p == 0)
return;
if (arr[a][p] == 1)
else if (arr[a][p] == 2)
else if (arr[a][p] == 3)
GMIT, Bhavnagar 55
ADA (3150703) 211290116062
Output:
GMIT, Bhavnagar 56