Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में रिकर्सन और इटरेशन में क्या अंतर है?


रिकर्सन और इटरेशन दोनों बार-बार इंस्ट्रक्शन्स के सेट को निष्पादित करते हैं। रिकर्सन तब होता है जब एक फंक्शन में एक स्टेटमेंट स्वयं को बार-बार कॉल करता है। इटरेशन तब होता है जब एक लूप नियंत्रण कंडीशन के गलत होने तक बार-बार निष्पादित होता है। रिकर्सन और इटरेशन के बीच प्राथमिक अंतर यह है कि रिकर्सन एक प्रक्रिया है, जो हमेशा एक फंक्शन पर लागू होती है और इटरेशन इंस्ट्रक्शन्स के सेट पर लागू होता है जिसे हम बार-बार निष्पादित करना चाहते हैं।

रिकर्सन

  • रिकर्सन सिलेक्शन स्ट्रक्चर का उपयोग करता है।
  • अनंत रिकर्सन तब होता है यदि रिकर्सन स्टेप समस्या को इस तरह से कम नहीं करता जो किसी कंडीशन (बेस केस) पर कन्वर्ज करता हो और अनंत रिकर्सन सिस्टम को क्रैश कर सकता है।
  • रिकर्सन तब समाप्त होता है जब एक बेस केस पहचाना जाता है।
  • रिकर्सन आमतौर पर इटरेशन से धीमा होता है क्योंकि स्टैक को बनाए रखने का ओवरहेड होता है।
  • रिकर्सन इटरेशन से अधिक मेमोरी उपयोग करता है।
  • रिकर्सन कोड को छोटा बनाता है।

उदाहरण

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

  1. Java में JTextField और JTextArea में क्या अंतर है? Java में JTextField और JTextArea में क्या अंतर है?

    Java में JTextField और JTextArea के बीच मुख्य अंतर यह है कि एक JTextField GUI एप्लिकेशन में टेक्स्ट की सिंगल लाइन एंटर करने की अनुमति देता है जबकि JTextArea GUI एप्लिकेशन में टेक्स्ट की मल्टीपल लाइन्स एंटर करने की अनुमति देता है। JTextField एक JTextField सबसे महत्वपूर्ण कंपोनेंट्स में से एक है जो

  1. Java में JFrame और JDialog में क्या अंतर है? Java में JFrame और JDialog में क्या अंतर है?

    JFrame फ्रेम में जोड़े गए कंपोनेंट्स को इसकी सामग्री कहा जाता है, इन्हें contentPane द्वारा प्रबंधित किया जाता है। JFrame में कंपोनेंट जोड़ने के लिए, हमें इसके contentPane का उपयोग करना चाहिए। एक JFrame में टाइटल, बॉर्डर, (वैकल्पिक) मेनू बार और यूज़र-स्पेसिफाइड कंपोनेंट्स के साथ एक विंडो होती है। ए

  1. Java में GridLayout और GridBagLayout में क्या अंतर है? Java में GridLayout और GridBagLayout में क्या अंतर है?

    एक GridLayout सभी कंपोनेंट्स को एक आयताकार ग्रिड में रखता है और इसे समान आकार के आयतों में विभाजित करता है और प्रत्येक कंपोनेंट को एक आयत के अंदर रखा जाता है जबकि GridBagLayout एक लचीला लेआउट मैनेजर है जो कंपोनेंट्स को वर्टिकली और हॉरिजॉन्टली संरेखित करता है बिना यह आवश्यकता के कि कंपोनेंट्स समान आक