Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Độ xáo trộn của mảng - JavaScript

Độ xáo trộn (shuffle intensity) của mảng: phần trăm các cặp phần tử liên tiếp không theo thứ tự tăng dần. Mảng đã sắp xếp = 0%, mảng hoàn toàn ngược = 100%.

Ví dụ

Mảng: [4, 23, 1, 23, 35, 78, 4, 45, 7, 34, 7]

Có 40% cặp giảm (không tăng dần).

Giải pháp

Mã triển khai:

const arr = [4, 23, 1, 23, 35, 78, 4, 45, 7, 34, 7];

const shuffleIntensity = arr => {
  if (arr.length <= 1) return 0;
  let incorrectPairs = 0;
  for (let i = 0; i < arr.length - 1; i++) {
    if (arr[i] > arr[i+1]) incorrectPairs++; // Cặp giảm
  }
  return (incorrectPairs / (arr.length - 1)) * 100;
};

console.log(shuffleIntensity(arr));

Kết quả

Đầu ra trong console:

40

Ý nghĩa: 40% các cặp liên tiếp vi phạm thứ tự tăng dần.