首頁  >  文章  >  web前端  >  JavaScript 程式計算以非遞增順序對給定陣列進行排序所需的旋轉次數

JavaScript 程式計算以非遞增順序對給定陣列進行排序所需的旋轉次數

WBOY
WBOY轉載
2023-09-15 18:45:03673瀏覽

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

我們將寫一個程式來計算以非遞增順序對陣列進行排序所需的旋轉次數。該程式將使用循環遍歷數組並追蹤迄今為止找到的最大元素。當找到較小的元素時,我們將增加旋轉計數並更新最大元素。最後,旋轉計數將作為程式的結果傳回。這個程式將幫助我們有效率地對陣列進行排序,並確定實現非遞增順序所需的旋轉次數。

方法

計算以非遞增順序對陣列進行排序所需的旋轉的方法如下 -

  • 將陣列拆分為兩部分:已排序部分和未排序部分。

  • 所需的旋轉次數等於已排序部分的元素數量。

  • 要找到已排序的部分,請從右向左遍歷陣列並追蹤最大元素。

  • 當找到較小的元素時,中斷循環並傳回已排序部分的長度。

  • 如果循環完成,則整個陣列已排序,因此傳回 0。

範例

這是一個完整的 JavaScript 範例,用於計算以非遞增順序對陣列進行排序所需的旋轉次數 -

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));

說明

  • 函數countRotations採用陣列作為參數。

  • n 被初始化為陣列的長度。

  • minIndexminValue 分別初始化為 0 和陣列的第一個元素。

  • for 迴圈從第二個元素開始迭代數組,以尋找數組中最小元素的索引和值。如果找到較小的元素,minIndexminValue 將更新為其索引和值。

  • 最後,函數傳回minIndex,,這是按非遞增順序對陣列進行排序所需的旋轉次數。

在此範例中,陣列為[15, 18, 2, 3, 6, 12],,最小元素為2, 位於索引#2.要對陣列進行非升序排序,2必須放在陣列結尾,所以需要的旋轉次數為2 >.

以上是JavaScript 程式計算以非遞增順序對給定陣列進行排序所需的旋轉次數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除