//NITISH KR.
DEBBARMA 22UCS054
#include <stdio.h>
int linearSearch(int arr[], int N, int key) {
for (int i = 0; i < N; i++) {
if (arr[i] == key) {
return i;
}
}
return -1;
}
int binarySearch(int arr[], int N, int key) {
int left = 0, right = N - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == key) {
return mid;
} else if (arr[mid] < key) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
void insertionSort(int arr[], int N) {
for (int i = 1; i < N; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
void bubbleSort(int arr[], int N) {
for (int i = 0; i < N - 1; i++) {
for (int j = 0; j < N - i - 1; j++) {
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
void selectionSort(int arr[], int N) {
for (int i = 0; i < N - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < N; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
int main()
{
int N,ch;
printf("Enter the number of elements in the array: ");
scanf("%d", &N);
int arr[N];
printf("Enter %d integers for the array:\n", N);
for (int i = 0; i < N; i++) {
scanf("%d", &arr[i]);
}
int key;
printf("Enter the element to search: ");
scanf("%d", &key);
int linearResult = linearSearch(arr, N, key);
if (linearResult != -1) {
printf("Linear Search: Element found at index %d\n", linearResult);
} else {
printf("Linear Search: Element not found\n");
}
insertionSort(arr, N);
int binaryResult = binarySearch(arr, N, key);
if (binaryResult != -1) {
printf("Binary Search: Element found at index %d\n", binaryResult);
} else {
printf("Binary Search: Element not found\n");
}
int sortedArr[N];
for (int i = 0; i < N; i++) {
sortedArr[i] = arr[i];
}
// Insertion Sort
insertionSort(sortedArr, N);
printf("Insertion Sort: Sorted array:\n");
for (int i = 0; i < N; i++) {
printf("%d ", sortedArr[i]);
}
printf("\n");
// Bubble Sort
for (int i = 0; i < N; i++) {
sortedArr[i] = arr[i];
}
bubbleSort(sortedArr, N);
printf("Bubble Sort: Sorted array:\n");
for (int i = 0; i < N; i++) {
printf("%d ", sortedArr[i]);
}
printf("\n");
// Selection Sort
for (int i = 0; i < N; i++) {
sortedArr[i] = arr[i];
}
selectionSort(sortedArr, N);
printf("Selection Sort: Sorted array:\n");
for (int i = 0; i < N; i++) {
printf("%d ", sortedArr[i]);
}
printf("\n");
return 0;
}