Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การตรวจสอบความเข้มของการสับเปลี่ยนของอาร์เรย์ - JavaScript


อาร์เรย์ของตัวเลขจะถูกสับเปลี่ยน 100% หากไม่มีตัวเลขสองตัวต่อเนื่องกันปรากฏขึ้นในอาร์เรย์ (เราจะพิจารณาเฉพาะกรณีของลำดับจากน้อยไปมากเท่านั้น) และจะสับเปลี่ยน 0% หากคู่เป็นตัวเลขต่อเนื่องกัน

สำหรับอาร์เรย์ที่มีความยาว n จะมีองค์ประกอบ n-1 คู่ (โดยไม่บิดเบือนลำดับ)

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขและส่งกลับตัวเลขระหว่าง [0, 100] ซึ่งแสดงถึงความเข้มของการสับเปลี่ยนในอาร์เรย์

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

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

ผลลัพธ์

ต่อไปนี้เป็นผลลัพธ์ในคอนโซล -

40

หมายความว่า 40% ของอาร์เรย์นี้ถูกสับเปลี่ยน