Độ 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.