Deleting Elements in an Array | Array Operations

In this post, we will look into deletion operation in an Array, i.e., how to delete an element from an Array, such as:
- Deleting Elements from an Array when it is Unsorted
- Deleting Elements from an Array when it is Sorted
Deleting Elements in an Array when it is Unsorted
In the delete operation, the element to be deleted is searched using the linear search, and then the delete operation is performed followed by shifting the elements.Â
C++
// C++ program to implement delete operation in a// unsorted array#include <iostream>using namespace std;Â
// To search a key to be deletedint findElement(int arr[], int n, int key);Â
// Function to delete an elementint deleteElement(int arr[], int n, int key){    // Find position of element to be deleted    int pos = findElement(arr, n, key);Â
    if (pos == -1) {        cout << "Element not found";        return n;    }Â
    // Deleting element    int i;    for (i = pos; i < n - 1; i++)        arr[i] = arr[i + 1];Â
    return n - 1;}Â
// Function to implement search operationint findElement(int arr[], int n, int key){Â Â Â Â int i;Â Â Â Â for (i = 0; i < n; i++)Â Â Â Â Â Â Â Â if (arr[i] == key)Â Â Â Â Â Â Â Â Â Â Â Â return i;Â
    return -1;}Â
// Driver's codeint main(){Â Â Â Â int i;Â Â Â Â int arr[] = { 10, 50, 30, 40, 20 };Â
    int n = sizeof(arr) / sizeof(arr[0]);    int key = 30;Â
    cout << "Array before deletion\n";    for (i = 0; i < n; i++)        cout << arr[i] << " ";Â
    // Function call    n = deleteElement(arr, n, key);Â
    cout << "\n\nArray after deletion\n";    for (i = 0; i < n; i++)        cout << arr[i] << " ";Â
    return 0;}Â
// This code is contributed by shubhamsingh10 |
C
// C program to implement delete operation in a// unsorted array#include <stdio.h>Â
// To search a key to be deletedint findElement(int arr[], int n, int key);Â
// Function to delete an elementint deleteElement(int arr[], int n, int key){    // Find position of element to be deleted    int pos = findElement(arr, n, 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;}Â
// Function to implement search operationint findElement(int arr[], int n, int key){Â Â Â Â int i;Â Â Â Â for (i = 0; i < n; i++)Â Â Â Â Â Â Â Â if (arr[i] == key)Â Â Â Â Â Â Â Â Â Â Â Â return i;Â
    return -1;}Â
// Driver's codeint main(){Â Â Â Â int i;Â Â Â Â int arr[] = { 10, 50, 30, 40, 20 };Â
    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("\nArray after deletion\n");    for (i = 0; i < n; i++)        printf("%d ", arr[i]);Â
    return 0;} |
Java
// Java program to implement delete// operation in an unsorted arrayÂ
class Main {    // function to search a key to    // be deleted    static int findElement(int arr[], int n, int key)    {        int i;        for (i = 0; i < n; i++)            if (arr[i] == key)                return i;Â
        return -1;    }Â
    // Function to delete an element    static int deleteElement(int arr[], int n, int key)    {        // Find position of element to be        // deleted        int pos = findElement(arr, n, key);Â
        if (pos == -1) {            System.out.println("Element not found");            return n;        }Â
        // Deleting element        int i;        for (i = pos; i < n - 1; i++)            arr[i] = arr[i + 1];Â
        return n - 1;    }Â
    // Driver's Code    public static void main(String args[])    {        int i;        int arr[] = { 10, 50, 30, 40, 20 };Â
        int n = arr.length;        int key = 30;Â
        System.out.println("Array before deletion");        for (i = 0; i < n; i++)            System.out.print(arr[i] + " ");Â
        // Function call        n = deleteElement(arr, n, key);Â
        System.out.println("\n\nArray after deletion");        for (i = 0; i < n; i++)            System.out.print(arr[i] + " ");    }} |
Python3
# Python program to delete an element# from an unsorted arrayÂ
# Driver's codeif __name__ == '__main__':    # Declaring array and key to delete    arr = [10, 50, 30, 40, 20]    key = 30Â
    print("Array before deletion:")    print(arr)Â
    # deletes key if found in the array    # otherwise shows error not in list    arr.remove(key)    print("Array after deletion")    print(arr)Â
    # This code is contributed by Aditi Sharma. |
C#
// C# program to implement delete// operation in an unsorted arrayusing System;Â
class main {    // Function to search a    // key to be deleted    static int findElement(int[] arr, int n, int key)    {Â
        int i;        for (i = 0; i < n; i++)            if (arr[i] == key)                return i;Â
        return -1;    }Â
    // Function to delete an element    static int deleteElement(int[] arr, int n, int key)    {        // Find position of element        // to be deleted        int pos = findElement(arr, n, key);Â
        if (pos == -1) {            Console.WriteLine("Element not found");            return n;        }Â
        // Deleting element        int i;        for (i = pos; i < n - 1; i++)            arr[i] = arr[i + 1];Â
        return n - 1;    }Â
    // Driver Code    public static void Main()    {        int i;        int[] arr = { 10, 50, 30, 40, 20 };Â
        int n = arr.Length;        int key = 30;Â
        Console.Write("Array before deletion ");        for (i = 0; i < n; i++)            Console.Write(arr[i] + " ");        Console.WriteLine();Â
        // Function call        n = deleteElement(arr, n, key);Â
        Console.Write("Array after deletion ");        for (i = 0; i < n; i++)            Console.Write(arr[i] + " ");    }}Â
// This code is contributed by vt_m. |
Javascript
// Java script program to implement delete// operation in an unsorted array  Â
    // function to search a key to     // be deleted    function findElement(arr,n,key)    {        let i;        for (i = 0; i < n; i++)            if (arr[i] == key)                return i;              return -1;    }          // Function to delete an element    function deleteElement(arr,n,key)    {        // Find position of element to be         // deleted        let pos = findElement(arr, n, key);              if (pos == -1)        {            document.write("Element not found");            return n;        }              // Deleting element        let i;        for (i = pos; i< n - 1; i++)            arr[i] = arr[i + 1];              return n - 1;    }          // Driver Code             let i;        let arr = [10, 50, 30, 40, 20];              let n = arr.length;        let key = 30;              document.write("Array before deletion<br>");        for (i=0; i<n; i++)          document.write(arr[i] + " ");              n = deleteElement(arr, n, key);             document.write("<br><br>Array after deletion<br>");        for (i=0; i<n; i++)          document.write(arr[i]+" ");     // This code is contributed by sravan kumar Gottumukkala |
PHP
<?php// PHP program to implement delete // operation in an unsorted array Â
// To search a key to be deleted function findElement(&$arr, $n, $key){ Â Â Â Â for ($i = 0; $i < $n; $i++) Â Â Â Â Â Â Â Â if ($arr[$i] == $key) Â Â Â Â Â Â Â Â Â Â Â Â return $i; Â
    return -1; } Â
// Function to delete an element function deleteElement(&$arr, $n, $key) {     // Find position of element to     // be deleted     $pos = findElement($arr, $n, $key); Â
    if ($pos == -1)     {         echo "Element not found";         return $n;     } Â
    // Deleting element     for ($i = $pos; $i < $n - 1; $i++)         $arr[$i] = $arr[$i + 1]; Â
    return $n - 1; } Â
// Driver code $arr = array(10, 50, 30, 40, 20); Â
$n = count($arr); $key = 30; Â
echo "Array before deletion\n"; for ($i = 0; $i < $n; $i++) echo $arr[$i] . " "; Â
// Function call$n = deleteElement($arr, $n, $key); Â
echo "\nArray after deletion\n"; for ($i = 0; $i < $n; $i++) echo $arr[$i] . " "; Â
// This code is contributed by// Rajput-Ji?> |
Output
Array before deletion 10 50 30 40 20 Array after deletion 10 50 40 20
Time Complexity: O(N)Â
Auxiliary Space: O(1)
Deleting Elements in an Array when it is Sorted
In the delete operation, the element to be deleted is searched using binary search, and then the delete operation is performed followed by shifting the elements.
Performing delete operation
Below is the implementation of the above approach:
C++
// C++ program to implement delete operation in a// sorted array#include <bits/stdc++.h>using namespace std;Â
// To search a key to be deletedint 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) {        cout << "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 codeint main(){Â Â Â Â int i;Â Â Â Â int arr[] = { 10, 20, 30, 40, 50 };Â
    int n = sizeof(arr) / sizeof(arr[0]);    int key = 30;Â
    cout << "Array before deletion\n";    for (i = 0; i < n; i++)        cout << arr[i] << " ";Â
    // Function call    n = deleteElement(arr, n, key);Â
    cout << "\n\nArray after deletion\n";    for (i = 0; i < n; i++)        cout << arr[i] << " ";}Â
// This code is contributed by shubhamsingh10 |
C
// C program to implement delete operation in a// sorted array#include <stdio.h>Â
// To search a key to be deletedint 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 codeint 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]);} |
Java
// Java program to delete an// element from a sorted arrayÂ
class Main {Â
    // Binary search    static 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);    }Â
    /* Function to delete an element */    static 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) {            System.out.println("Element not found");            return n;        }Â
        // Deleting element        int i;        for (i = pos; i < n - 1; i++)            arr[i] = arr[i + 1];Â
        return n - 1;    }Â
    /* Driver Code */    public static void main(String[] args)    {Â
        int i;        int arr[] = { 10, 20, 30, 40, 50 };Â
        int n = arr.length;        int key = 30;Â
        System.out.print("Array before deletion:\n");        for (i = 0; i < n; i++)            System.out.print(arr[i] + " ");Â
        // Function call        n = deleteElement(arr, n, key);Â
        System.out.print("\n\nArray after deletion:\n");        for (i = 0; i < n; i++)            System.out.print(arr[i] + " ");    }} |
Python3
# Python program to implement delete operation in a# sorted arrayÂ
# /* Function to delete an element */Â
Â
def deleteElement(arr, n, key):Â
    # Find position of element to be deleted    pos = binarySearch(arr, 0, n - 1, key)Â
    if (pos == -1):        print("Element not found")        return nÂ
    # Deleting element    for i in range(pos, n - 1):        arr[i] = arr[i + 1]Â
    return n - 1Â
# To search a key to be deletedÂ
Â
def binarySearch(arr, low, high, key):Â
    if (high < low):        return -1    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 codeif __name__ == "__main__":Â Â Â Â arr = [10, 20, 30, 40, 50]Â
    n = len(arr)    key = 30Â
    print("Array before deletion")Â
    for i in range(n):        print(arr[i], end=" ")Â
    # Function call    n = deleteElement(arr, n, key)    print("\n\nArray after deletion")    for i in range(n):        print(arr[i], end=" ")Â
# This code is contributed by shubhamsingh10 |
C#
// C# program to delete an// element from a sorted arrayusing System;public class GFG {Â
    // Binary search    static 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);    }Â
    /* Function to delete an element */    static 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) {            Console.WriteLine("Element not found");            return n;        }Â
        // Deleting element        int i;        for (i = pos; i < n - 1; i++)            arr[i] = arr[i + 1];Â
        return n - 1;    }Â
    /* Driver Code */    public static void Main()    {Â
        int i;        int[] arr = { 10, 20, 30, 40, 50 };Â
        int n = arr.Length;        int key = 30;Â
        Console.Write("Array before deletion:\n");        for (i = 0; i < n; i++)            Console.Write(arr[i] + " ");Â
        // Function call        n = deleteElement(arr, n, key);Â
        Console.Write("\n\nArray after deletion:\n");        for (i = 0; i < n; i++)            Console.Write(arr[i] + " ");    }}Â
// This code is contributed by Rajput-Ji |
Javascript
<script>Â
// JavaScript program to delete an// element from a sorted arrayÂ
    // binary search    function binarySearch(arr, low, high, key)    {        if (high < low)            return -1;        let 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);    }Â
    /* Function to delete an element */    function deleteElement( arr, n, key)    {        // Find position of element to be deleted        let pos = binarySearch(arr, 0, n - 1, key);Â
        if (pos == -1) {            document.write("Element not found");            return n;        }Â
        // Deleting element        let i;        for (i = pos; i < n - 1; i++)            arr[i] = arr[i + 1];Â
        return n - 1;    }Â
    /* Driver Code */             let i;        let arr = [ 10, 20, 30, 40, 50 ];Â
        let n = arr.length;        let key = 30;Â
        document.write("Array before deletion:\n");        for (i = 0; i < n; i++)            document.write(arr[i] + " ");Â
        n = deleteElement(arr, n, key);Â
        document.write("<br>"+"Array after deletion:\n");        for (i = 0; i < n; i++)            document.write(arr[i] + " "); // this code is contributed by shivanisinghss2110Â
</script> |
Output
Array before deletion 10 20 30 40 50 Array after deletion 10 20 40 50
Time Complexity: O(N). In the worst case all elements may have to be moved
Auxiliary Space: O(log N). An implicit stack will be used
Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



