检查数组的随机排列强度 - JavaScript

javascriptweb developmentfront end technologyobject oriented programming更新于 2025/12/8 13:32:17

如果数组中没有两个连续的数字同时出现,则数字数组的随机排列程度为 100%(我们这里只考虑升序的情况)。如果两个数字是连续的,则随机排列程度为 0%。

对于长度为 n 的数组,将有 n-1 对元素(不扭曲其顺序)。

我们需要编写一个 JavaScript 函数,该函数接受一个数字数组并返回一个介于 [0, 100] 之间的数字,表示数组中的随机排列强度

示例

以下是代码 −

const arr = [4, 23, 1, 23, 35, 78, 4, 45, 7, 34, 7];
// 此函数计算升序排序的偏差
const shuffleIntensity = arr => {
   let inCorrectPairs = 0;
   if(arr.length <= 1){
      return 0;
   };
   for(let i = 0; i < arr.length - 1; i++){
      if(arr[i] - arr[i+1] <= 0){
         continue;
      };
      inCorrectPairs++;
   };
   return (inCorrectPairs / (arr.length -1)) * 100;
};
console.log(shuffleIntensity(arr));

输出

以下是控制台中的输出 −

40

这意味着这个数组的 40% 部分被打乱了。


相关文章


有用资源