Search, insert and delete in an unsorted array
In this post search, insert and delete operation in an unsorted array is discussed.
Search Operation
In an unsorted array, the search operation can be performed by linear traversal from the first element to the last element.
C
// C program to implement linear // search in unsorted array #include<stdio.h> // Function to implement search operation int findElement( int arr[], int n, int key) { int i; for (i = 0; i < n; i++) if (arr[i] == key) return i; return -1; } // Driver Code int main() { int arr[] = {12, 34, 10, 6, 40}; int n = sizeof (arr) / sizeof (arr[0]); // Using a last element as search element int key = 40; int position = findElement(arr, n, key); if (position == - 1) printf ( "Element not found" ); else printf ( "Element Found at Position: %d" , position + 1 ); return 0; } |
chevron_right
filter_none
Java
// Java program to implement linear // search in unsorted arrays class Main { // Function to implement // search operation static int findElement( int arr[], int n, int key) { for ( int i = 0 ; i < n; i++) if (arr[i] == key) return i; return - 1 ; } // Driver Code public static void main(String args[]) { int arr[] = { 12 , 34 , 10 , 6 , 40 }; int n = arr.length; // Using a last element as search element int key = 40 ; int position = findElement(arr, n, key); if (position == - 1 ) System.out.println( "Element not found" ); else System.out.println( "Element Found at Position: " + (position + 1 )); } } |
chevron_right
filter_none
Python
# Python program for searching in # unsorted array def findElement(arr, n, key): for i in range (n): if (arr[i] = = key): return i return - 1 arr = [ 12 , 34 , 10 , 6 , 40 ] key = 40 n = len (arr) #search operation index = findElement(arr, n, key) if index ! = - 1 : print ( "element found at position: " + str (index + 1 )) else : print ( "element not found" ) # Thanks to Aditi Sharma for contributing # this code |
chevron_right
filter_none
C#
// C# program to implement linear // search in unsorted arrays using System; class main { // Function to implement // search operation static int findElement( int []arr, int n, int key) { for ( int i = 0; i < n; i++) if (arr[i] == key) return i; return -1; } // Driver Code public static void Main() { int []arr = {12, 34, 10, 6, 40}; int n = arr.Length; // Using a last element as // search element int key =40; int position = findElement(arr,n,key); if (position == - 1) Console.WriteLine( "Element not found" ); else Console.WriteLine( "Element Found at Position: " + (position+1)); } } // This code is contributed by vt_m. |
chevron_right
filter_none
PHP
<?php // PHP program to implement linear // search in unsorted array // Function to implement // search operation function findElement( $arr , $n , $key ) { $i ; for ( $i = 0; $i < $n ; $i ++) if ( $arr [ $i ] == $key ) return $i ; return -1; } // Driver Code $arr = array (12, 34, 10, 6, 40); $n = sizeof( $arr ); // Using a last element // as search element $key = 40; $position = findElement( $arr , $n , $key ); if ( $position == - 1) echo ( "Element not found" ); else echo ( "Element Found at Position: " . ( $position + 1)); // This code is contributed by Ajit. ?> |
chevron_right
filter_none
Output:
Element Found at Position: 5
Insert Operation
In an unsorted array, the insert operation is faster as compared to sorted array because we don’t have to care about the position at which the element is to be placed.
C
// C program to implement insert // operation in an unsorted array. #include<stdio.h> // Inserts a key in arr[] of given capacity. // n is current size of arr[]. This // function returns n + 1 if insertion // is successful, else n. int insertSorted( int arr[], int n, int key, int capacity) { // Cannot insert more elements if n is // already more than or equal to capcity if (n >= capacity) return n; arr[n] = key; return (n + 1); } // Driver Code int main() { int arr[20] = {12, 16, 20, 40, 50, 70}; int capacity = sizeof (arr) / sizeof (arr[0]); int n = 6; int i, key = 26; printf ( "\n Before Insertion: " ); for (i = 0; i < n; i++) printf ( "%d " , arr[i]); // Inserting key n = insertSorted(arr, n, key, capacity); printf ( "\n After Insertion: " ); for (i = 0; i < n; i++) printf ( "%d " ,arr[i]); return 0; } |
chevron_right
filter_none
Java
// Java program to implement insert // operation in an unsorted array. class Main { // Function to insert a given key in // the array. This function returns n+1 // if insertion is successful, else n. static int insertSorted( int arr[], int n, int key, int capacity) { // Cannot insert more elements if n // is already more than or equal to // capcity if (n >= capacity) return n; arr[n] = key; return (n + 1 ); } // Driver Code public static void main (String[] args) { int [] arr = new int [ 20 ]; arr[ 0 ] = 12 ; arr[ 1 ] = 16 ; arr[ 2 ] = 20 ; arr[ 3 ] = 40 ; arr[ 4 ] = 50 ; arr[ 5 ] = 70 ; int capacity = 20 ; int n = 6 ; int i, key = 26 ; System.out.print( "Before Insertion: " ); for (i = 0 ; i < n; i++) System.out.print(arr[i]+ " " ); // Inserting key n = insertSorted(arr, n, key, capacity); System.out.print( "\n After Insertion: " ); for (i = 0 ; i < n; i++) System.out.print(arr[i]+ " " ); } } |
chevron_right
filter_none
Python
# Python program for inserting # an element in an unsorted array # method to insert element def insert(arr, element): arr.append(element) # declaring array and key to insert arr = [ 12 , 16 , 20 , 40 , 50 , 70 ] key = 26 # array before inserting an element print ( "Before Inserting: " ) print (arr) # array after Inserting element insert(arr, key) print ( "After Inserting: " ) print (arr) # Thanks to Aditi Sharma for contributing # this code |
chevron_right
filter_none
C#
// C# program to implement insert // operation in an unsorted array. using System; class main { // Function to insert a given // key in the array. This // function returns n + 1 // if insertion is successful, // else n. static int insertSorted( int []arr, int n, int key, int capacity) { // Cannot insert more elements // if n is already more than // or equal to capcity if (n >= capacity) return n; arr[n] = key; return (n + 1); } // Driver Code public static void Main () { int [] arr = new int [20]; arr[0] = 12; arr[1] = 16; arr[2] = 20; arr[3] = 40; arr[4] = 50; arr[5] = 70; int capacity = 20; int n = 6; int i, key = 26; Console.Write( "Before Insertion: " ); for (i = 0; i < n; i++) Console.Write(arr[i]+ " " ); Console.WriteLine(); // Inserting key n = insertSorted(arr, n, key, capacity); Console.Write( "After Insertion: " ); for (i = 0; i < n; i++) Console.Write(arr[i]+ " " ); } } // This code is contributed by vt_m. |
chevron_right
filter_none
Output:
Before Insertion: 12 16 20 40 50 70 After Insertion: 12 16 20 40 50 70 26
Delete Operation
In delete operation, the element to be deleted is searched using the linear search and then delete operation is performed followed by shifting the elements.
C
// C program to implement delete operation in a // unsorted array #include<stdio.h> // To search a key to be deleted int findElement( int arr[], int n, int key); // Function to delete an element int 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 operation int findElement( int arr[], int n, int key) { int i; for (i = 0; i < n; i++) if (arr[i] == key) return i; return - 1; } // Driver code int 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]); n = deleteElement(arr, n, key); printf ( "\nArray after deletion\n" ); for (i = 0; i < n; i++) printf ( "%d " , arr[i]); return 0; } |
chevron_right
filter_none
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 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] + " " ); n = deleteElement(arr, n, key); System.out.println( "\n\nArray after deletion" ); for (i= 0 ; i<n; i++) System.out.print(arr[i]+ " " ); } } |
chevron_right
filter_none
Python
# Python program to delete an element # from an unsorted array # Declaring array and key to delete arr = [ 10 , 50 , 30 , 40 , 20 ] key = 30 print ( "Array before dletion:" ) 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. |
chevron_right
filter_none
C#
// C# program to implement delete // operation in an unsorted array using 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(); 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. |
chevron_right
filter_none
Output:
Array before deletion 10 50 30 40 20 Array after deletion 10 50 40 20
Time complexities:
Search: O(n)
Insert: O(1)
Delete: O(n)
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
Recommended Posts:
- Search, insert and delete in a sorted array
- Front and Back Search in unsorted array
- Search an element in an unsorted array using minimum number of comparisons
- Why is it faster to process sorted array than an unsorted array ?
- Insert minimum number in array so that sum of array becomes prime
- Remove duplicates from unsorted array
- Program for Mean and median of an unsorted array
- Find floor and ceil in an unsorted array
- Print all pairs in an unsorted array with equal sum
- Find the largest pair sum in an unsorted array
- K'th Smallest/Largest Element in Unsorted Array | Set 1
- Find the two numbers with odd occurrences in an unsorted array
- kth smallest/largest in a small range unsorted array
- Cumulative frequency of count of each element in an unsorted array
- Find index of first occurrence when an unsorted array is sorted