Wa0003
Wa0003
(Affiliated to)
I take this opportunity to give my vote of thanks to my guide who really helped
me throughout this practical that has led to successful and satisfactory
completion of this practical report.
I feel great sense of gratitude for Dr. Chetna Laroiya under whose guidance and
motivation this work has been performed.
I would also like to express my thanks to all lab assistants for giving me
opportunity to work under their esteemed guidance. This practical could not
have been completed without their guidance and coordination.
The inspiration of the faculty members of the Information Technology
Department of JIMS Rohini (Sec-5) enabled me to make a thorough practical
report of these topics.
Associate Professor
JIMS, Rohini
#include <stdio.h>
int j=i-1;
while(j>=0 &&
arr[j]>key){ arr[j+1] =
arr[j]; j=j-1;
count++;
printf("\n");
arr[i]);
printf(" ");}
int n;
scanf("%d", &n);
int arr[n];
scanf("%d", &arr[i]); }
insertion_sort(arr, n);
printArr(arr, n);
return 0;
Output:
Number of elements 5 10 20
Worst 14 54 209
Best 4 9 19
Average 7 15 73
#include <stdio.h>
*xp = *yp;
*yp = temp;
count++;
if(mine>arr[j]){
mini=j;
mine=arr[j];
&arr[i]);
printf("\n");
arr[i]);
printf(" ");
int arr[n];
scanf("%d", &arr[i]);
return 0;
Output:
Best Case
Worst Case
Average Case
Number of elements 5 10 20
Worst 10 45 190
Best 10 45 190
Average 10 45 190
#include <stdio.h>
*xp = *yp;
*yp = temp;
pivot = arr[r];
int i=p-1;
if(arr[j]<=pivot){
i=i+1;
swap(&arr[i], &arr[j]);
swap(&arr[i+1], &arr[r]);
return i+1;
count++; quicksort(arr, p,
r);
arr[i]);
printf(" ");
printf("\n");
&n);
int arr[n];
scanf("%d", &arr[i]);
}
quicksort(arr, 0, n-1);
printArr(arr, n);
return 0;
Output:
Average Case
Worst Case
Number of elements 5 10 20
Worst 4 9 19
Best 3 6 12
Average 3 7 12
#include <stdio.h>
arr1[len1]; int
arr2[len2]; int k = s;
arr1[i] = arr[k++];
k = mid+1;
arr2[i] = arr[k++];
int index1 = 0;
int index2 = 0;
k = s;
arr[k++] = arr1[index1++];
else{
arr[k++] = arr2[index2++];
= arr1[index1++];
= arr2[index2++];
int count=0;
count++; mergeSort(arr,
s, mid); count++;
merge(arr, s, e);
printf("\n");
int n;
scanf("%d", &n);
int arr[n];
printf("Enter the elements: ");
scanf("%d", &arr[i]);
printArr(arr, n);
return 0;
Output:
Worst Case
Average Case
Number of elements 5 10 20
Worst 8 18 38
Best 8 18 38
Average 8 18 38
count++;
(array[mid] == x)
return mid;
if (array[mid] < x)
low = mid + 1;
else
high = mid - 1;
return -1;
int array[n];
Output:
Number of elements 5 10 20
Worst 3 4 5
Best 1 1 1
Average 2 3 4
Code:
#include<stdio.h> #include<limits.h>
int m[n][n];
int i, j, k, L, q; for
m[i][i] = 0;
{
j = i+L-1;
m[i][j] = INT_MAX;
n++;
int arr[n];
printf("Enter dimensions \n"); for(i=0;i<n;i++)
{
printf("Enter d%d :: ",i);
scanf("%d",&arr[i]);
}
int size = sizeof(arr)/sizeof(arr[0]);
printf("Minimum number of multiplications is %d ", MatrixChainMultiplication(arr, size));
return 0;
}
Output:
int j, t;
t= a[m];
j = 2 * m; while (j <= n) { if
+ 1; if (t < a[j])
break;
a[j/2] = a[j]; j
= 2 * j; }
a[j/2] = t;
return;
int k;
min_heap(a,k,n);
}}
n, i;
int a[30];
elememt:", i);
scanf("%d",&a[i]);
Heap \n");
printf("%d \n",a[i]);}
getch();}
Output:
#include <stdio.h>
int mx = arr[0];
int output[n];
}
for (i = 0; i < n; i++) arr[i]
= output[i];
countSort(arr, n, exp);
", arr[i]);
int main()
int n;
&n);
int arr[n];
scanf("%d", &arr[i]);
radixsort(arr, n);
printf("\n");
print(arr, n);
return 0;
Output:
#include <stdio.h>
#define MAX 10
0) cost[i][j] = INFINITY;
distance[i] = cost[start][i];
pred[i] = start;
visited[i] = 0;
distance[start] = 0;
visited[start] = 1;
count = 1;
= INFINITY;
distance[i];
nextnode = i;
visited[nextnode] = 1;
if (!visited[i])
pred[i] = nextnode;
}
int main() {
int Graph[MAX][MAX], i, j, n, u;
&Graph[i][j]);
u = 0;
Dijkstra(Graph, n, u);
return 0;
Output:
#include <stdio.h>
#include<stdio.h>
#include<stdbool.h>
#define V 5 int
G[V][V] = {
no_edge;
int selected[V];
y;
min = INF; x = 0;
y = 0;
if (selected[i]) {
G[i][j]; x = i;
y = j ;}
0;} Output:
#include <stdio.h>
#include <stdlib.h>
};
struct MinHeap {
unsigned size;
unsigned capacity;
};
}
struct MinHeap *createMinHeap(unsigned capacity) {
MinHeap)); minHeap->size = 0;
return minHeap;
*a = *b;
*b = t;
idx + 2;
smallest = left;
= right;
if (smallest != idx) {
swapMinHeapNode(&minHeap->array[smallest], &minHeap->array[idx]);
minHeapify(minHeap, smallest);
minHeap->array[minHeap->size - 1];
--minHeap->size;
minHeapify(minHeap, 0);
return temp;
++minHeap->size;
int i = minHeap->size - 1;
i = (i - 1) / 2;
minHeap->array[i] = minHeapNode;
0; --i)
minHeapify(minHeap, i);
n; ++i) printf("%d",
arr[i]);
printf("\n");
minHeap->array[i] = newNode(data[i],
return extractMin(minHeap);
(root->left) {
arr[top] = 0;
if (root->right) { arr[top]
= 1;
if (isLeaf(root)) {
printArr(arr, top);
}
}
int main() {
printf("\n \n");
0;
Output:
<string.h>
N = strlen(txt);
break;
if (j== M)
printf("Pattern found at index %d \n", i);
}
}
int main()
{
char txt[] = "XYZXYZXYZXXXYZXYZZY";
char pat[] = "XYZX";
}
Output:
#include <stdio.h>
d 256
N = strlen(txt);
0; int h = 1; for (i = 0; i
< M - 1; i++) h = (h * d)
% q;
p = (d * p + pat[i]) % q; t
= (d * t + txt[i]) % q;
if (p == t) { for (j = 0; j <
M; j++) { if (txt[i + j] !=
pat[j])
break;
if (j == M)
if (i < N - M) {
if (t < 0)
t = (t + q);
int main(){
Output: