Computer >> Máy Tính >  >> Lập trình >> Javascript

Kiểm tra cường độ xáo trộn của một mảng - JavaScript

Một mảng số bị xáo trộn 100% nếu không có hai số liên tiếp nào xuất hiện cùng nhau trong mảng (chúng tôi chỉ xét trường hợp thứ tự tăng dần ở đây). Và nó bị xáo trộn 0% nếu các cặp là các số liên tiếp.

Đối với một mảng có độ dài n sẽ có n-1 cặp phần tử (không làm sai lệch thứ tự của nó).

Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một mảng số và trả về một số trong khoảng [0, 100] biểu thị cường độ xáo trộn trong mảng

Ví dụ

Sau đây là mã -

const arr = [4, 23, 1, 23, 35, 78, 4, 45, 7, 34, 7];
// this function calculates deviation from ascending sort
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));

Đầu ra

Sau đây là đầu ra trong bảng điều khiển -

40

Có nghĩa là 40% đoạn của mảng này bị xáo trộn.