Sorting an array can be done by using inbuilt sort function while for the insertion we have to create a new array to do so as arrays in Java are immutable. To learn more about sorting in Java follow the article mentioned below:
Sorting: Arrays.sort() in Java with examples
Approach 1:
- Create a new array of size N+1.
- Copy first array in New array.
- Insert number at the end of the array.
- Sort the array.
Example: Inserting an element and then sorting the array.
Java
// Java program to insert an element in // an array and then sorting it. // Importing util files import java.util.*; public class Gfg { // Main function public static void main(String args[]) throws Exception { // Given number int given_number = 1 ; // Array int array[] = { 6 , 7 , 8 , 2 , 3 , 4 , 5 , 9 , 10 }; // Creating new array with increased size int new_array[] = new int [array.length + 1 ]; // Copying elements from one array to another for ( int i = 0 ; i < array.length; i++) { new_array[i] = array[i]; } // Adding new element new_array[new_array.length - 1 ] = given_number; // Sorting new array Arrays.sort(new_array); // print array for ( int i = 0 ; i < new_array.length; i++) System.out.print(new_array[i] + " " ); } } |
1 2 3 4 5 6 7 8 9 10
Time complexity: O(n log n)
Approach 2:
- Sort the array.
- Create a new array of size N+1.
- Start traversing the given array and copy elements.
- If the given number is less than equal to the number present in the array, append given a number to the new array.
- Copy remaining elements of the given array to the new array.
Example: Inserting an element and then sorting the array.
Java
// Java program to insert an element // in an array and then sorting it. // Importing util files import java.util.*; public class Gfg { // Main function public static void main(String args[]) throws Exception { // Given Number int given_number = 1 ; // Array int array[] = { 6 , 7 , 8 , 2 , 3 , 4 , 5 , 9 , 10 }; // Sort Given array Arrays.sort(array); // Creating new array with increased size int new_array[] = new int [array.length + 1 ]; // Copying elements from one // array to another as in approach 2 int i = 0 , j = 0 ; for (i = 0 ; i < new_array.length; i++) { if (given_number <= array[i]) { new_array[i] = given_number; break ; } else new_array[i] = array[j++]; } // copy the remaining elements for ( int k = i + 1 ; k < new_array.length; k++) new_array[k] = array[j++]; // print new array for (i = 0 ; i < new_array.length; i++) System.out.print(new_array[i] + " " ); } } |
1 2 3 4 5 6 7 8 9 10
Time complexity: O(n log n)
Approach 3:
- Create a set.
- Start adding all the elements in the set.
- Copy remaining elements of the given set to the new array.
Example: Inserting an element and then sorting the array.
Java
// Java program to insert an element // in an array and then sorting it. // Importing util files import java.util.Arrays; import java.util.HashSet; import java.util.Set; public class GFG { public static void main(String[] args) { // using wrapper class here for array, // to convert into object Integer arr[] = { 6 , 7 , 8 , 2 , 3 , 4 , 5 , 9 , 10 }; Set<Integer> sets = new HashSet<Integer>(Arrays.asList(arr)); sets.add( 1 ); arr = sets.toArray(arr); // print the array System.out.println(Arrays.toString(arr)); } } |
1 2 3 4 5 6 7 8 9 10
Time complexity: O(n log n)