Given a list of integers, rearrange the list such that it consists of alternating minimum maximum elements using only list operations. The first element of the list should be minimum and second element should be maximum of all elements present in the list. Similarly, third element will be next minimum element and fourth element is next maximum element and so on. Use of extra space is not permitted.
Input: [1 3 8 2 7 5 6 4] Output: [1 8 2 7 3 6 4 5] Input: [1 2 3 4 5 6 7] Output: [1 7 2 6 3 5 4] Input: [1 6 2 5 3 4] Output: [1 6 2 5 3 4]
The idea is to sort the list in ascending order first. Then we start popping elements from the end of the list and insert them into their correct position in the list.
Below is the implementation of above idea –
1 8 2 7 3 6 4 5
This article is contributed by Aditya Goel. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Find minimum and maximum elements in singly Circular Linked List
- Rearrange an array in maximum minimum form | Set 1
- Rearrange an array in maximum minimum form | Set 2 (O(1) extra space)
- Rearrange array in alternating positive & negative items with O(1) extra space | Set 1
- Rearrange array in alternating positive & negative items with O(1) extra space | Set 2
- Minimize the difference between minimum and maximum elements
- Sum of minimum and maximum elements of all subarrays of size k.
- Alternating split of a given Singly Linked List | Set 1
- Product of all Subsequences of size K except the minimum and maximum Elements
- Program to print N minimum elements from list of integers
- Count minimum frequency elements in a linked list
- Minimum and Maximum Prime Numbers of a Singly Linked List
- Maximum and Minimum element of a linked list which is divisible by a given number k
- Recursive approach for alternating split of Linked List
- Choose k array elements such that difference of maximum and minimum is minimized
Improved By : princiraj1992