From 0c3ecad6c23e81b7a6504d299ed069c6708e68e5 Mon Sep 17 00:00:00 2001 From: Raghav1229 <115594501+Raghav1229@users.noreply.github.com> Date: Sun, 16 Oct 2022 08:00:46 +0530 Subject: [PATCH] Create How to Delete in a Sorted Array in c --- How to Delete in a Sorted Array in c | 58 ++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 How to Delete in a Sorted Array in c diff --git a/How to Delete in a Sorted Array in c b/How to Delete in a Sorted Array in c new file mode 100644 index 0000000..86af912 --- /dev/null +++ b/How to Delete in a Sorted Array in c @@ -0,0 +1,58 @@ +// C program to implement delete operation in a +// sorted array +#include + +// To search a key to be deleted +int binarySearch(int arr[], int low, int high, int key); + +/* Function to delete an element */ +int deleteElement(int arr[], int n, int key) +{ + // Find position of element to be deleted + int pos = binarySearch(arr, 0, n - 1, key); + + if (pos == -1) { + printf("Element not found"); + return n; + } + + // Deleting element + int i; + for (i = pos; i < n - 1; i++) + arr[i] = arr[i + 1]; + + return n - 1; +} + +int binarySearch(int arr[], int low, int high, int key) +{ + if (high < low) + return -1; + int mid = (low + high) / 2; + if (key == arr[mid]) + return mid; + if (key > arr[mid]) + return binarySearch(arr, (mid + 1), high, key); + return binarySearch(arr, low, (mid - 1), key); +} + +// Driver code +int main() +{ + int i; + int arr[] = { 10, 20, 30, 40, 50 }; + + int n = sizeof(arr) / sizeof(arr[0]); + int key = 30; + + printf("Array before deletion\n"); + for (i = 0; i < n; i++) + printf("%d ", arr[i]); + + // Function call + n = deleteElement(arr, n, key); + + printf("\n\nArray after deletion\n"); + for (i = 0; i < n; i++) + printf("%d ", arr[i]); +}