Remove elements to make array sorted

21 Jun, 2022
Given an array of integers, the task is to remove elements from the array to make the array sorted. That is, remove the elements which do not follow an increasing order.
Examples:  
Input: arr[] = {1, 2, 4, 3, 5, 7, 8, 6, 9, 10} Output: 1 2 4 5 7 8 9 10
Input: arr[] = {10, 12, 9, 5, 2, 13, 14} Output: 10 12 13 14  
Approach: Traverse the given array and for every element which is greater than or equal to the previously taken element, add this element to another array else skip to the next element. In the end, the newly created array will be sorted according to Stalin sort. 
For each element check if the element is greater than the previous element or not. If yes then check for the next element.Else remove that element.After all the elements have been traversed, we will get a sorted array.
For each element check if the element is greater than the previous element or not. If yes then check for the next element.Else remove that element.
If yes then check for the next element.
Else remove that element.
After all the elements have been traversed, we will get a sorted array.
Below is the implementation of the above approach:  
C++
Java
Python3
C#
Javascript
// C++ implementation of the approach #include <bits/stdc++.h>using namespace std; // Function to sort the array// by removing misplaced elementsvoid removeElements(int arr[], int n){     // brr[] is used to store    // the sorted array elements    int brr[n], l = 1;     brr[0] = arr[0];    for (int i = 1; i < n; i++) {        if (brr[l - 1] <= arr[i]) {            brr[l] = arr[i];            l++;        }    }     // Print the sorted array    for (int i = 0; i < l; i++)        cout << brr[i] << " ";} // Driver codeint main(){    int arr[] = { 10, 12, 9, 10, 2, 13, 14 };    int n = sizeof(arr) / sizeof(arr[0]);    removeElements(arr, n);     return 0;}
// Java implementation of the approach class GFG{     // Function to sort the array// by removing misplaced elementsstatic void removeElements(int []arr, int n){     // brr[] is used to store    // the sorted array elements    int []brr = new int[n];    int l = 1;     brr[0] = arr[0];    for (int i = 1; i < n; i++)    {        if (brr[l - 1] <= arr[i])        {            brr[l] = arr[i];            l++;        }    }     // Print the sorted array    for (int i = 0; i < l; i++)        System.out.print(brr[i] + " ");} // Driver codestatic public void main (String[] args){    int []arr = { 10, 12, 9, 10, 2, 13, 14 };    int n = arr.length;    removeElements(arr, n);}} // This code is contributed by Code_Mech.
# Python3 implementation of the approach # Function to sort the array# by removing misplaced elementsdef removeElements(arr,  n) :     # brr[] is used to store    # the sorted array elements    brr = [0]*n; l = 1;     brr[0] = arr[0];    for i in range(1,n) :        if (brr[l - 1] <= arr[i]) :            brr[l] = arr[i];            l += 1;     # Print the sorted array    for i in range(l) :        print(brr[i],end=" ");  # Driver codeif __name__ == "__main__" :     arr = [ 10, 12, 9, 10, 2, 13, 14 ];    n = len(arr);    removeElements(arr, n);     # This code is contributed by AnkitRai01
// C# implementation of the approachusing System; class GFG{     // Function to sort the array// by removing misplaced elementsstatic void removeElements(int []arr, int n){     // brr[] is used to store    // the sorted array elements    int []brr = new int[n];    int l = 1;     brr[0] = arr[0];    for (int i = 1; i < n; i++)    {        if (brr[l - 1] <= arr[i])        {            brr[l] = arr[i];            l++;        }    }     // Print the sorted array    for (int i = 0; i < l; i++)        Console.Write(brr[i] + " ");} // Driver codestatic public void Main (){    int []arr = { 10, 12, 9, 10, 2, 13, 14 };    int n = arr.Length;    removeElements(arr, n);}} // This code is contributed by jit_t
<script>    // Javascript implementation of the approach         // Function to sort the array    // by removing misplaced elements    function removeElements(arr, n)    {         // brr[] is used to store        // the sorted array elements        let brr = new Array(n);        brr.fill(0);        let l = 1;         brr[0] = arr[0];        for (let i = 1; i < n; i++)        {            if (brr[l - 1] <= arr[i])            {                brr[l] = arr[i];                l++;            }        }         // Print the sorted array        for (let i = 0; i < l; i++)            document.write(brr[i] + " ");    }         let arr = [ 10, 12, 9, 10, 2, 13, 14 ];    let n = arr.length;    removeElements(arr, n); </script>
10 12 13 14
 
Time Complexity: O(n)Auxiliary Space: O(n) 
Method 2: Instead of using an extra array, store them in the same array  
C++
Java
Python3
C#
Javascript
// C++ implementation of the approach #include <bits/stdc++.h>using namespace std; // Function to sort the array// by removing misplaced elementsvoid removeElements(int arr[], int n){     // l stores the index    int l = 1;    for (int i = 1; i < n; i++) {        if (arr[l - 1] <= arr[i]) {            arr[l] = arr[i];            l++;        }    }     // Print the sorted array    for (int i = 0; i < l; i++)        cout << arr[i] << " ";} // Driver codeint main(){    int arr[] = { 10, 12, 9, 10, 2, 13, 14 };    int n = sizeof(arr) / sizeof(arr[0]);    removeElements(arr, n);     return 0;}
// Java implementation of the approachclass GFG{ // Function to sort the array// by removing misplaced elementsstatic void removeElements(int arr[], int n){         // l stores the index    int l = 1;    for(int i = 1; i < n; i++)    {        if (arr[l - 1] <= arr[i])        {            arr[l] = arr[i];            l++;        }    }     // Print the sorted array    for(int i = 0; i < l; i++)        System.out.print(arr[i] + " ");} // Driver codepublic static void main(String[] args){    int arr[] = { 10, 12, 9, 10, 2, 13, 14 };    int n = arr.length;         removeElements(arr, n);}} // This code is contributed by shikhasingrajput
# Python3 implementation of the approach # Function to sort the array# by removing misplaced elementsdef removeElements(arr, n):         # l stores the index    l = 1    for i in range(1, n):        if (arr[l - 1] <= arr[i]):            arr[l] = arr[i]            l += 1             # Print the sorted array    for i in range(l):        print(arr[i], end = " ") # Driver codeif __name__ == "__main__" :     arr = [ 10, 12, 9, 10, 2, 13, 14 ]    n = len(arr)         removeElements(arr, n) # This code is contributed by Surbhi Tyagi.
// C# implementation of the approachusing System; class GFG{ // Function to sort the array// by removing misplaced elementspublic static void removeElements(int []arr, int n){         // l stores the index    int l = 1;    for(int i = 1; i < n; i++)    {        if (arr[l - 1] <= arr[i])        {            arr[l] = arr[i];            l++;        }    }     // Print the sorted array    for(int i = 0; i < l; i++)        Console.Write( arr[i] + " ");} // Driver codepublic static void Main(string []args){    int []arr = { 10, 12, 9, 10, 2, 13, 14 };    int n = arr.Length;         removeElements(arr, n);}} // This code is contributed by importantly
<script>     // Javascript implementation of the approach         // Function to sort the array    // by removing misplaced elements    function removeElements(arr, n)    {         // l stores the index        let l = 1;        for (let i = 1; i < n; i++) {            if (arr[l - 1] <= arr[i]) {                arr[l] = arr[i];                l++;            }        }         // Print the sorted array        for (let i = 0; i < l; i++)            document.write(arr[i] + " ");    }         let arr = [ 10, 12, 9, 10, 2, 13, 14 ];    let n = arr.length;    removeElements(arr, n); </script>
10 12 13 14
 
Time Complexity: O(n)Auxiliary Space: O(1) 
jit_t
Code_Mech
ankthon
vinodhinic
mukesh07
divyeshrabadiya07
surbhityagi15
importantly
shikhasingrajput
pushpeshrajdx01
Arrays
Sorting
Arrays
Sorting
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Maximum and minimum of an array using minimum number of comparisons
Top 50 Array Coding Problems for Interviews
Multidimensional Arrays in Java
Stack Data Structure (Introduction and Program)
Linear Search
Merge Sort
Bubble Sort Algorithm
QuickSort
Insertion Sort
Selection Sort Algorithm