Related Articles

# Remove elements to make array sorted

• Difficulty Level : Easy
• Last Updated : 09 Jun, 2021

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.

1. 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.
2. After all the elements have been traversed, we will get a sorted array.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach` `#include ``using` `namespace` `std;` `// Function to sort the array``// by removing misplaced elements``void` `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 code``int` `main()``{``    ``int` `arr[] = { 10, 12, 9, 10, 2, 13, 14 };``    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr[0]);``    ``removeElements(arr, n);` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach` `class` `GFG``{``    ` `// Function to sort the array``// by removing misplaced elements``static` `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 code``static` `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

 `# Python3 implementation of the approach` `# Function to sort the array``# by removing misplaced elements``def` `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 code``if` `__name__ ``=``=` `"__main__"` `:` `    ``arr ``=` `[ ``10``, ``12``, ``9``, ``10``, ``2``, ``13``, ``14` `];``    ``n ``=` `len``(arr);``    ``removeElements(arr, n);` `    ``# This code is contributed by AnkitRai01`

## C#

 `// C# implementation of the approach``using` `System;` `class` `GFG``{``    ` `// Function to sort the array``// by removing misplaced elements``static` `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 code``static` `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`

## Javascript

 ``
Output:
`10 12 13 14`

Method 2: Instead of using an extra array, store them in the same array

## C++

 `// C++ implementation of the approach` `#include ``using` `namespace` `std;` `// Function to sort the array``// by removing misplaced elements``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++)``        ``cout << arr[i] << ``" "``;``}` `// Driver code``int` `main()``{``    ``int` `arr[] = { 10, 12, 9, 10, 2, 13, 14 };``    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr[0]);``    ``removeElements(arr, n);` `    ``return` `0;``}`

## Python3

 `# Python3 implementation of the approach` `# Function to sort the array``# by removing misplaced elements``def` `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 code``if` `__name__ ``=``=` `"__main__"` `:` `    ``arr ``=` `[ ``10``, ``12``, ``9``, ``10``, ``2``, ``13``, ``14` `]``    ``n ``=` `len``(arr)``    ` `    ``removeElements(arr, n)` `# This code is contributed by Surbhi Tyagi.`

## C#

 `// C# implementation of the approach``using` `System;` `class` `GFG{` `// Function to sort the array``// by removing misplaced elements``public` `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 code``public` `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`

## Javascript

 ``
Output:
`10 12 13 14`

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up