0% found this document useful (0 votes)
18 views6 pages

DAA Practial

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views6 pages

DAA Practial

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

1. Implement Selec on Sort using recursive approach.

Also write its


algorithm and sample output.
Code:-
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void selec onSort(int arr[], int n, int i, int min_index) {
if (i == n - 1) {
return;
}
if (arr[i] < arr[min_index]) {
min_index = i;
}
selec onSort(arr, n, i + 1, min_index);
if (min_index != i) {
swap(&arr[i], &arr[min_index]);
}
}
int main() {
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr) / sizeof(arr[0]);

prin ("Unsorted array: ");


for (int i = 0; i < n; i++) {
prin ("%d ", arr[i]);
}
selec onSort(arr, n, 0, 0);
prin ("\nSorted array: ");
for (int i = 0; i < n; i++) {
prin ("%d ", arr[i]);
}
return 0;
}
2. Implement Bubble Sort using recursive approach. Also write its algorithm
and sample output.
Code:-
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void recursiveBubbleSort(int arr[], int n) {
if (n == 1) return;
for (int i = 0; i < n - 1; i++) {
if (arr[i] > arr[i + 1]) {
swap(&arr[i], &arr[i + 1]);
}
}
recursiveBubbleSort(arr, n - 1);
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
recursiveBubbleSort(arr, n);
prin ("Sorted array: \n");
for (int i = 0; i < n; i++) {
prin ("%d ", arr[i]);
}
prin ("\n");

return 0;
}
3. Implement Binary Search using recursive approach. Also write its
algorithm and sample output.
Code:-
int binary_search(int arr[], int low, int high, int key) {
if (low > high) {
return -1; // Element not found
}

int mid = low + (high - low) / 2;

if (arr[mid] == key) {
return mid; // Element found at mid index
} else if (arr[mid] > key) {
return binary_search(arr, low, mid - 1, key); // Search le half
} else {
return binary_search(arr, mid + 1, high, key); // Search right half
}
}

int main() {
int arr[] = {2, 3, 4, 10, 40};
int key = 10;
int result = binary_search(arr, 0, sizeof(arr) / sizeof(arr[0]) - 1, key);

if (result == -1) {
prin ("Element is not present in array\n");
} else {
prin ("Element is present at index %d\n", result);
}

return 0;
}
4. Implement Merge Sort using recursive approach. Also write its algorithm
and sample output.
Code:-
void merge(int arr[], int le , int mid, int right) {
int n1 = mid - le + 1;
int n2 = right - mid;
int le Arr[n1], rightArr[n2];
for (int i = 0; i < n1; i++)
le Arr[i] = arr[le + i];
for (int j = 0; j < n2; j++)
rightArr[j] = arr[mid + 1 + j];
int i = 0, j = 0, k = le ;
while (i < n1 && j < n2) {
if (le Arr[i] <= rightArr[j])
arr[k++] = le Arr[i++];
else
arr[k++] = rightArr[j++];
}
while (i < n1)
arr[k++] = le Arr[i++];
while (j < n2)
arr[k++] = rightArr[j++];
}
void mergeSort(int arr[], int le , int right) {
if (le < right) {
int mid = le + (right - le ) / 2;
mergeSort(arr, le , mid);
mergeSort(arr, mid + 1, right);
merge(arr, le , mid, right);
}
}
int main() {
int arr[] = {6, 5, 3, 1, 8, 7, 2, 4};
int n = sizeof(arr) / sizeof(arr[0]);
mergeSort(arr, 0, n - 1);
prin ("Sorted array: ");
for (int i = 0; i < n; i++)
prin ("%d ", arr[i]);
prin ("\n");
return 0;
}
5. Implement Merge Sort using recursive approach. Also write its algorithm
and sample output.
Code:-
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int par on(int arr[], int low, int high) {
int pivot = arr[high];
int i = (low - 1); // index of smaller element
for (int j = low; j <= high - 1; j++) {
if (arr[j] <= pivot) {
i++;
swap(&arr[i], &arr[j]);
}
}
swap(&arr[i + 1], &arr[high]);
return (i + 1);
}
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pi = par on(arr, low, high);
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
void printArray(int arr[], int n) {
prin ("Sorted array: \n");
for (int i = 0; i < n; ++i) {
prin ("%d ", arr[i]);
}
prin ("\n");
}
int main() {
int arr[] = {10, 7, 8, 9, 1, 5};
int n = sizeof(arr) / sizeof(arr[0]);
prin ("Unsorted array: \n");
for (int i = 0; i < n; ++i) {
prin ("%d ", arr[i]);
}
prin ("\n");
quickSort(arr, 0, n - 1);
printArray(arr, n);
return 0;
}

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy