本文将讨论未排序数组中的搜索、插入和删除操作。
null
搜索操作
在未排序的数组中,可以通过从第一个元素到最后一个元素的线性遍历来执行搜索操作。
C++
// C++ program to implement linear // search in unsorted array #include<bits/stdc++.h> using namespace std; // 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) cout << "Element not found" ; else cout << "Element Found at Position: " << position + 1; return 0; } // This code is contributed // by Akanksha Rai |
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; } |
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 )); } } |
Python3
# 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 |
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. |
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. ?> |
Javascript
<script> // Javascript program to implement linear // search in unsorted array // Function to implement search operation function findElement( arr, n, key) { let i; for (i = 0; i < n; i++) if (arr[i] == key) return i; return -1; } // Driver program let arr = [12, 34, 10, 6, 40]; let n = arr.length; // Using a last element as search element let key = 40; let position = findElement(arr, n, key); if (position == - 1) document.write( "Element not found" ); else document.write( "Element Found at Position: " + (position + 1)); </script> |
输出:
Element Found at Position: 5
在末尾插入
在未排序的数组中,插入操作比排序数组更快,因为我们不必关心元素的放置位置。
C++
// C++ program to implement insert // operation in an unsorted array. #include <iostream> using namespace std; // 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 capacity 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; cout << " Before Insertion: " ; for (i = 0; i < n; i++) cout << arr[i]<< " " ; // Inserting key n = insertSorted(arr, n, key, capacity); cout << " After Insertion: " ; for (i = 0; i < n; i++) cout << arr[i] << " " ; return 0; } // This code is contributed by SHUBHAMSINGH10 |
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 capacity 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 ( " Before Insertion: " ); for (i = 0; i < n; i++) printf ( "%d " , arr[i]); // Inserting key n = insertSorted(arr, n, key, capacity); printf ( " After Insertion: " ); for (i = 0; i < n; i++) printf ( "%d " ,arr[i]); return 0; } |
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 // capacity 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( " After Insertion: " ); for (i = 0 ; i < n; i++) System.out.print(arr[i]+ " " ); } } |
Python3
# 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 |
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 capacity 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. |
PHP
<?php // PHP program to implement insert // operation in an unsorted array. // 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. function insertSorted(& $arr , $n , $key , $capacity ) { // Cannot insert more elements if n is // already more than or equal to capacity if ( $n >= $capacity ) return $n ; array_push ( $arr , $key ); return ( $n + 1); } // Driver Code $arr = array (12, 16, 20, 40, 50, 70); $capacity = 20; $n = 6; $key = 26; echo "Before Insertion: " ; for ( $i = 0; $i < $n ; $i ++) echo $arr [ $i ] . " " ; // Inserting key $n = insertSorted( $arr , $n , $key , $capacity ); echo "After Insertion: " ; for ( $i = 0; $i < $n ; $i ++) echo $arr [ $i ] . " " ; // This code is contributed by // Rajput-Ji ?> |
Javascript
<script> // Javascript program to implement insert // operation in an unsorted array. // Function to insert a given // key in the array. This // function returns n + 1 // if insertion is successful, // else n. function insertSorted(arr, n, key, capacity) { // Cannot insert more elements // if n is already more than // or equal to capacity if (n >= capacity) return n; arr[n] = key; return (n + 1); } let arr = new Array(20); arr[0] = 12; arr[1] = 16; arr[2] = 20; arr[3] = 40; arr[4] = 50; arr[5] = 70; let capacity = 20; let n = 6; let i, key = 26; document.write( "Before Insertion: " ); for (i = 0; i < n; i++) document.write(arr[i]+ " " ); document.write( "</br>" ); // Inserting key n = insertSorted(arr, n, key, capacity); document.write( "After Insertion: " ); for (i = 0; i < n; i++) document.write(arr[i]+ " " ); </script> |
输出:
Before Insertion: 12 16 20 40 50 70 After Insertion: 12 16 20 40 50 70 26
删除操作
在删除操作中,使用 线性搜索 ,然后执行删除操作,然后移动元素。
C++
// C++ program to implement delete operation in a // unsorted array #include <iostream> using namespace std; // 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) { 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 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; cout << "Array before deletion" ; for (i = 0; i < n; i++) cout << arr[i] << " " ; n = deleteElement(arr, n, key); cout << "Array after deletion" ; 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 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" ); for (i = 0; i < n; i++) printf ( "%d " , arr[i]); n = deleteElement(arr, n, key); printf ( "Array after deletion" ); 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 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( "Array after deletion" ); for (i= 0 ; i<n; i++) System.out.print(arr[i]+ " " ); } } |
Python3
# 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 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 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. |
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" ; for ( $i = 0; $i < $n ; $i ++) echo $arr [ $i ] . " " ; $n = deleteElement( $arr , $n , $key ); echo "Array after deletion" ; for ( $i = 0; $i < $n ; $i ++) echo $arr [ $i ] . " " ; // This code is contributed by // Rajput-Ji ?> |
Javascript
<script> // 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 </script> |
输出:
Array before deletion10 50 30 40 20 Array after deletion10 50 40 20
时间复杂性: 搜索: O(n) 插入: O(1) 删除: O(n)
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END