You are in browsing mode. You must LOGIN to create, edit, and delete your own blogs.
Word Count: 2003
Author: AdityaMokashi
Topic: PROGRAMS
Created On: 28 Apr 2025
Last Updated: 28 Apr 2025 14:00:37
BINARY SEARCH #include<stdio.h> int main() { printf("Enter the size of the array: "); scanf("%d",&n); int arr[n]; printf("Enter the array elements:\n"); for( i = 0 ; i < n ; i++) { scanf("%d",&arr[i]); } printf("Enter the element to be searched: "); scanf("%d",&ele); sort(arr , n); printf("The sorted array is:\n"); for(i = 0 ; i < n ;i++) { printf("%d\t",arr[i]); } Binary(arr , n , ele); return 0; } int n , ele , i , p; void sort(int arr[] , int size ) { int i , j ; for(i = 0 ; i < size-1 ; i++) { for(j = 0 ; j < size-1-i ; j++) { if(arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j + 1] = temp ; } } } } void Binary(int arr[] , int size , int element) { int l = 0, h = size-1 , m , counter = 0; while(l <= h) { m = (l + h)/2; if( element == arr[m]) { printf("\nElement found at %d",m); counter++; break; } if(element < arr[m]) { h = h - 1; counter++; } else if(element > arr[m]) { l = l + 1; counter++; } } printf("\nThe number of comparisons are %d",counter); if(element != arr[m]) { printf("\nElement not found"); } } MIN_MX #include<stdio.h> int min_max() { int a,i; printf("Enter the Size of Array="); scanf("%d",&a); int arr[a]; printf("Enter the array elements=\n"); for(i = 0; i<a; i++) { scanf("%d",&arr[i]); } int min,max; min= arr[0]; max= arr[0]; for(i = 0; i<a; i++) { if(arr[i]<min) { min=arr[i]; } if(arr[i]>max) { max=arr[i]; } } printf("THE MIN NUMBER IS: %d\n",min); printf("THE MAX NUMBER IS: %d",max); } int main() { min_max(); return 0; } MERGE SORT ALGORITHM #include<stdio.h> int count = 0; void Merge(int arr[], int low, int mid, int high ) { int l = low; int r = mid + 1; int i = low; int b[high - low + 1]; while ((l <= mid) && (r <= high)) { if (arr[l] <= arr[r]) { b[i - low] = arr[l]; l++; count++; } else { b[i - low] = arr[r]; r++; count++ ; } i++; } while(l <= mid) { b[i - low] = arr[l]; l++; i++; } while (r <= high) { b[i - low] = arr[r]; r++; i++; } for (i = low; i <= high; i++) { arr[i] = b[i - low]; } // printf("Comparisons: %d\n",count); } void MergeSort(int arr[], int low, int high ) { if (low < high) { int mid = (low + high) / 2; MergeSort(arr, low, mid); MergeSort(arr, mid + 1, high ); Merge(arr, low, mid, high ); } } int main() { int n, i ; printf("Enter the size of the array: "); scanf("%d", &n); int arr[n]; printf("Enter the elements of the array:\n"); for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } MergeSort(arr, 0, n - 1 ); printf("The sorted array is:\n"); for (i = 0; i < n; i++) { printf("%d\t", arr[i]); } printf("\n"); printf("Comparisons: %d\n",count); return 0; }
QUICK SORT
#include <stdio.h>
//Quick sort
void swap(int arr[], int i, int j) {
int temp;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
// Partition function to put smaller numbers on left, bigger on right
int partition(int arr[], int low, int high) {
int pivot = arr[high]; // pick last number as pivot
int i = low;
for (int j = low; j < high; j++) {
if (arr[j] < pivot) {
swap(arr, i, j);
i++;
}
}
swap(arr, i, high);
return i;
}
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pi = partition(arr, low, high); // find pivot position
// Sort the two halves
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
// Function to print the array
void printArray(int arr[], int size) {
printf("Sorted numbers: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
// Main function
int main() {
int arr[100];
int n;
printf("How many numbers? ");
scanf("%d", &n);
printf("Enter the numbers:\n");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
quickSort(arr, 0, n - 1); // Call quick sort
printArray(arr, n); // Print the sorted array
return 0;
}
PRIM'S ALGO
#include <stdio.h> #define INF 9999 #define MAX 100 int main() { int n, i, j, u, v, min, cost[MAX][MAX], visited[MAX] = {0}, ne = 1, mincost = 0; printf("Enter the number of vertices: "); scanf("%d", &n); printf("Enter the adjacency matrix (use 0 for no edge):\n"); for (i = 0; i < n; i++) for (j = 0; j < n; j++) { scanf("%d", &cost[i][j]); if (cost[i][j] == 0) cost[i][j] = INF; } visited[0] = 1; // Start from the first vertex printf("Edges in the Minimum Spanning Tree:\n"); while (ne < n) { min = INF; for (i = 0; i < n; i++) { if (visited[i]) { for (j = 0; j < n; j++) { if (!visited[j] && cost[i][j] < min) { min = cost[i][j]; u = i; v = j; } } } } printf("%d - %d : %d\n", u + 1, v + 1, min); mincost += min; visited[v] = 1; ne++; } printf("Minimum cost = %d\n", mincost); return 0; }
KNAPSAK PROBLEM
#include <stdio.h> int main() { int n, max_weight; printf("How many toys do you have? "); scanf("%d", &n); printf("What's the max weight your bag can hold? "); scanf("%d", &max_weight); int weight[n], value[n]; printf("Enter weight and value for each toy:\n"); for (int i = 0; i < n; i++) { printf("Toy %d: ", i + 1); scanf("%d %d", &weight[i], &value[i]); } int dp[n + 1][max_weight + 1]; for (int i = 0; i <= n; i++) { for (int w = 0; w <= max_weight; w++) { if (i == 0 || w == 0) { dp[i][w] = 0; } else if (weight[i - 1] <= w) { int take = value[i - 1] + dp[i - 1][w - weight[i - 1]]; int leave = dp[i - 1][w]; dp[i][w] = (take > leave) ? take : leave; } else { dp[i][w] = dp[i - 1][w]; } } } printf("Max happiness you can carry: %d\n", dp[n][max_weight]); return 0; }