
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Count Rotations Required to Sort Array in Non-Increasing Order
We will be writing a program to count the number of rotations required to sort an array in non-increasing order. The program will use a loop to traverse the array and keep track of the maximum element found so far. When a smaller element is found, we will increment the rotation count and update the maximum element. In the end, the rotation count will be returned as the result of the program. This program will help us efficiently sort the array and determine the number of rotations required to achieve a non-increasing order.
Approach
The approach to counting rotations required to sort an array in non-increasing order is as follows ?
Split the array into two parts: a sorted part and an unsorted part.
The number of rotations required is equal to the number of elements in the sorted part.
To find the sorted part, traverse the array from right to left and keep track of the maximum element.
When a smaller element is found, break the loop and return the length of the sorted part.
If the loop completes, the whole array is sorted, so return 0.
Example
Here is a complete example in JavaScript to count the number of rotations required to sort an array in non-increasing order ?
function countRotations(arr) { let n = arr.length; let minIndex = 0; let minValue = arr[0]; // Find the minimum element for (let i = 1; i < n; i++) { if (arr[i] < minValue) { minIndex = i; minValue = arr[i]; } } // Return the number of rotations return minIndex; } let arr = [15, 18, 2, 3, 6, 12]; console.log("The number of rotations required to sort the array in non-increasing order is:", countRotations(arr));
Explanation
The function countRotations takes an array as an argument.
n is initialized to the length of the array.
minIndex and minValue are initialized to 0 and the first element of the array, respectively.
The for loop iterates through the array, starting from the second element, to find the index and value of the minimum element in the array. If a smaller element is found, minIndex and minValue are updated to its index and value.
Finally, the function returns minIndex, which is the number of rotations required to sort the array in non-increasing order.
In this example, the array is [15, 18, 2, 3, 6, 12], and the minimum element is 2, located at index 2. To sort the array in non-increasing order, the 2 must be placed at the end of the array, so the number of rotations required is 2.