यदि सरणी में कोई भी दो क्रमागत संख्याएं एक साथ दिखाई नहीं देती हैं, तो संख्याओं की एक सरणी 100% शफ़ल हो जाती है (हम यहां केवल आरोही क्रम के मामले पर विचार करते हैं)। और यह 0% फेरबदल किया जाता है यदि जोड़े लगातार संख्याओं के होते हैं।
लंबाई n की एक सरणी के लिए तत्वों के n-1 जोड़े होंगे (इसके क्रम को विकृत किए बिना)।
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो संख्याओं की एक सरणी लेता है और सरणी में फेरबदल की तीव्रता का प्रतिनिधित्व करने वाले [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% हिस्सा फेरबदल किया गया है।