हम दो JavaScript फ़ंक्शन लिखेंगे, जिनका काम एक संख्या लेकर उसका फैक्टोरियल लौटाना होगा।
पहला फ़ंक्शन फैक्टोरियल की गणना के लिए for लूप या while लूप का उपयोग करेगा। जबकि दूसरा फ़ंक्शन पुनरावर्ती (recursive) दृष्टिकोण का उपयोग करेगा।
अंत में, हमें बड़ी संख्या में पुनरावृत्तियों (iterations) पर इन फ़ंक्शन्स द्वारा लिए गए समय की तुलना करनी चाहिए।
उदाहरण
निम्नलिखित कोड देखें:
const factorial = (num = 1) => {
let result = 1;
for (let i = 2; i <= num; i += 1) {
result *= i;
}
return result;
};
const factorialRecursive = (num = 1) => {
if (num > 1) {
return num * factorialRecursive(num - 1);
} else {
return 1;
}
};
const ITERATIONS = 100000000;
const num = 12;
console.time('Looping Approach');
for (let i = 0; i < ITERATIONS; i++) {
factorial(num);
}
console.timeEnd('Looping Approach');
console.time('Recursive Approach');
for (let j = 0; j < ITERATIONS; j++) {
factorialRecursive(num);
}
console.timeEnd('Recursive Approach');
आउटपुट
कंसोल पर निम्नलिखित आउटपुट प्राप्त होगा:
Looping Approach: 886.720ms
Recursive Approach: 6526.203ms
लिया गया समय मशीन दर मशीन भिन्न हो सकता है, लेकिन अनुपात कमोबेश समान ही रहेगा।