Home  >  Article  >  Web Front-end  >  JavaScript program to calculate the number of rotations required to sort a given array in non-increasing order

JavaScript program to calculate the number of rotations required to sort a given array in non-increasing order

WBOY
WBOYforward
2023-09-15 18:45:03672browse

JavaScript 程序计算以非递增顺序对给定数组进行排序所需的旋转次数

We will write a program to calculate the number of rotations required to sort an array in non-increasing order. The program will use a loop to iterate through the array and keep track of the largest element found so far. When a smaller element is found, we increment the spin count and update the largest element. Finally, the rotation count will be returned as the result of the program. This program will help us sort an array efficiently and determine the number of rotations required to achieve non-increasing order.

method

The way to calculate the rotation required to sort an array in non-increasing order is as follows -

  • Split the array into two parts: the sorted part and the unsorted part.

  • The number of rotations required is equal to the number of elements in the sorted section.

  • To find the sorted section, traverse the array from right to left and keep track of the largest element.

  • When a smaller element is found, break the loop and return the length of the sorted portion.

  • If the loop completes, the entire array is sorted, so 0 is returned.

Example

This is a complete JavaScript example for calculating 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));

illustrate

  • FunctioncountRotations takes an array as a parameter.

  • 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 the array starting from the second element to find the index and value of the smallest element in the array. If a smaller element is found, minIndex and minValue will be updated with 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],, the smallest element is 2, and is at index 2.To sort the array in non-ascending order, 2 must be placed at the end of the array, so the number of rotations required is 2 >.

The above is the detailed content of JavaScript program to calculate the number of rotations required to sort a given array in non-increasing order. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete