Professional Documents
Culture Documents
#include <stdio.h>
if (arr[mid] == x) {
return mid;
low = mid + 1;
} else {
high = mid - 1;
int main() {
scanf("%d", &n);
scanf("%d", &arr[i]);
}
printf("Enter the element to be searched: ");
scanf("%d", &x);
if (index == -1) {
} else {
return 0;
#include <stdio.h>
if (arr[mid] == x) {
return mid;
} else {
return binary_search(arr, low, mid - 1, x);
int main() {
scanf("%d", &n);
scanf("%d", &arr[i]);
scanf("%d", &x);
if (index == -1) {
} else {
return 0;
}
3.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() {
int arr[100], n;
scanf("%d", &n);
scanf("%d", &arr[i]);
insertion_sort(arr, n);
printf("Sorted array in ascending order:\n");
return 0;
4.Merge Sort
#include <stdio.h>
void merge(int arr[], int left[], int left_size, int right[], int right_size) {
int i = 0, j = 0, k = 0;
arr[k++] = left[i++];
} else {
arr[k++] = right[j++];
arr[k++] = left[i++];
arr[k++] = right[j++];
}
void merge_sort(int arr[], int n) {
if (n < 2) {
return;
int mid = n / 2;
left[i] = arr[i];
merge_sort(left, mid);
merge_sort(right, n - mid);
int main() {
int arr[100], n;
scanf("%d", &n);
merge_sort(arr, n);
return 0;
5.Quick Sort
#include <stdio.h>
*a = *b;
*b = temp;
int i = low - 1;
i++;
swap(&arr[i], &arr[j]);
}
}
return i + 1;
quick_sort(arr, pi + 1, high);
int main() {
int arr[100], n;
scanf("%d", &n);
scanf("%d", &arr[i]);
quick_sort(arr, 0, n - 1);
return 0;
6.Heap Sort.
#include <stdio.h>
int largest = i;
int left_child = 2 * i + 1;
int right_child = 2 * i + 2;
largest = left_child;
largest = right_child;
if (largest != i) {
arr[i] = arr[largest];
arr[largest] = temp;
heapify(arr, n, largest);
heapify(arr, n, i);
for (int i = n - 1; i >= 0; i--) {
arr[0] = arr[i];
arr[i] = temp;
heapify(arr, i, 0);
int main() {
int arr[100], n;
scanf("%d", &n);
scanf("%d", &arr[i]);
heap_sort(arr, n);
return 0;
}
7.Job Sequencing with Deadline.
#include <stdio.h>
struct job {
int id;
int profit;
int deadline;
};
int i, j;
max_deadline = arr[i].deadline;
int slots[max_deadline];
slots[i] = -1;
int total_profit = 0;
if (slots[j] == -1) {
slots[j] = arr[i].id;
total_profit += arr[i].profit;
break;
}
if (j >= 0)
if (slots[i] != -1)
printf("\n");
int main() {
int n, i;
scanf("%d", &n);
arr[i].id = i+1;
arr[j] = arr[j+1];
arr[j+1] = temp;
job_sequence(arr, n);
return 0;
8.Graph colouring.
#include <stdio.h>
#include <stdlib.h>
// Vertex struct
typedef struct {
int id;
int degree;
int color;
int adj[MAX_DEGREE];
} Vertex;
// Graph struct
typedef struct {
int num_vertices;
int num_edges;
Vertex vertices[MAX_VERTICES];
} Graph;
graph->vertices[src].adj[degree] = dest;
graph->vertices[src].degree++;
degree = graph->vertices[dest].degree;
graph->vertices[dest].adj[degree] = src;
graph->vertices[dest].degree++;
printf("Graph:\n");
printf("\n");
if (adj_vertex_color != -1) {
used_colors[adj_vertex_color] = 1;
int color = 0;
while (used_colors[color]) {
color++;
vertex->color = color;
if (adj_vertex_color != -1) {
used_colors[adj_vertex_color] = 0;
printf("Vertex colors:\n");
}
}
int main() {
Graph graph;
scanf("%d", &num_vertices);
graph.num_vertices = num_vertices;
scanf("%d", &num_edges);
graph.num_edges = num_edges;
graph.vertices[i] = vertex;
}
// Print the graph
print_graph(&graph);
color_graph(&graph);
print_colors(&graph);
return 0;
9.KMP Algo.
#include <stdio.h>
#include <string.h>
int n = strlen(text);
int m = strlen(pattern);
int i, j;
int pi[m];
pi[0] = 0;
j = pi[j - 1];
if (pattern[i] == pattern[j]) {
j++;
}
pi[i] = j;
// Use the prefix function to search for the pattern in the text
j = pi[j - 1];
if (text[i] == pattern[j]) {
j++;
if (j == m) {
j = pi[j - 1];
int main() {
char text[1000];
char pattern[1000];
return 0;
#include <stdio.h>
#include <limits.h>
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;
s[i][j] = k;
}
void printOptimalParens(int s[MAX_SIZE][MAX_SIZE], int i, int j) {
if (i == j) {
printf("A%d", i);
} else {
printf("(");
printOptimalParens(s, i, s[i][j]);
printf(")");
int main() {
int n, p[MAX_SIZE];
scanf("%d", &n);
scanf("%d", &p[i]);
matrixChainOrder(p, n, m, s);
printOptimalParens(s, 1, n);
return 0;
}
11.Fractional Knapsack.
#include <stdio.h>
struct Item {
};
return (a > b) ? a : b;
float ratio[n];
ratio[j] = ratio[j+1];
ratio[j+1] = temp;
struct Item temp_item = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp_item;
int current_weight = 0;
int i = 0;
selected[i] = arr[i].weight;
current_weight += arr[i].weight;
max_value += arr[i].value;
else {
selected[i] = remaining_weight;
break;
i++;
return max_value;
}
// Main function to take user input and test the fractional knapsack function
int main() {
int n, W;
scanf("%d", &n);
scanf("%d", &W);
int selected[n];
selected[i] = 0;
if (selected[i] != 0) {
}
}
return 0;
12.0/1 Knapsack
#include<stdio.h>
return ((i>j)?i:j);
int value;
if(v[i][j]<0) {
if(j<w[i])
value=knap(i-1,j); else
value=max(knap(i-1,j),p[i]+knap(i-1,j-w[i]));
v[i][j]=value;
return(v[i][j]);
int main() {
int profit,count=0;
scanf("%d",&n);
for (i=1;i<=n;i++) {
scanf("%d%d",&p[i],&w[i]);
scanf("%d",&cap);
for (i=0;i<=n;i++)
for (j=0;j<=cap;j++)
if((i==0)||(j==0))
v[i][j]=0; else
v[i][j]=-1;
profit=knap(n,cap);
i=n;
j=cap;
while(j!=0&&i!=0) {
if(v[i][j]!=v[i-1][j]) {
x[i]=1;
j=j-w[i];
i--;
} else
i--;
printf("Sl.no\tweight\tprofit\n");
for (i=1;i<=n;i++)
if(x[i])
printf("%d\t%d\t%d\n",++count,w[i],p[i]);