रिकर्सन और इटरेशन दोनों बार-बार इंस्ट्रक्शन्स के सेट को निष्पादित करते हैं। रिकर्सन तब होता है जब एक फंक्शन में एक स्टेटमेंट स्वयं को बार-बार कॉल करता है। इटरेशन तब होता है जब एक लूप नियंत्रण कंडीशन के गलत होने तक बार-बार निष्पादित होता है। रिकर्सन और इटरेशन के बीच प्राथमिक अंतर यह है कि रिकर्सन एक प्रक्रिया है, जो हमेशा एक फंक्शन पर लागू होती है और इटरेशन इंस्ट्रक्शन्स के सेट पर लागू होता है जिसे हम बार-बार निष्पादित करना चाहते हैं।
रिकर्सन
- रिकर्सन सिलेक्शन स्ट्रक्चर का उपयोग करता है।
- अनंत रिकर्सन तब होता है यदि रिकर्सन स्टेप समस्या को इस तरह से कम नहीं करता जो किसी कंडीशन (बेस केस) पर कन्वर्ज करता हो और अनंत रिकर्सन सिस्टम को क्रैश कर सकता है।
- रिकर्सन तब समाप्त होता है जब एक बेस केस पहचाना जाता है।
- रिकर्सन आमतौर पर इटरेशन से धीमा होता है क्योंकि स्टैक को बनाए रखने का ओवरहेड होता है।
- रिकर्सन इटरेशन से अधिक मेमोरी उपयोग करता है।
- रिकर्सन कोड को छोटा बनाता है।
उदाहरण
public class RecursionExample {
public static void main(String args[]) {
RecursionExample re = new RecursionExample();
int result = re.factorial(4);
System.out.println("Result:" + result);
}
public int factorial(int n) {
if (n==0) {
return 1;
} else {
return n*factorial(n-1);
}
}
}
आउटपुट
Result:24
इटरेशन
- इटरेशन रिपीटिशन स्ट्रक्चर का उपयोग करता है।
- इटरेशन के साथ अनंत लूप तब होता है यदि लूप कंडीशन टेस्ट कभी गलत नहीं होता और अनंत लूपिंग CPU साइकिल्स का बार-बार उपयोग करती है।
- एक इटरेशन समाप्त होता है जब लूप कंडीशन फेल होती है।
- एक इटरेशन स्टैक का उपयोग नहीं करता इसलिए यह रिकर्सन से तेज होता है।
- इटरेशन कम मेमोरी खपत करता है।
- इटरेशन कोड को लंबा बनाता है।
उदाहरण
public class IterationExample {
public static void main(String args[]) {
for(int i = 1; i <= 5; i++) {
System.out.println(i + " ");
}
}
}
आउटपुट
1 2 3 4 5