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

सबसे लंबे समय तक सामान्य बाद के लिए जावा प्रोग्राम

सबसे लंबे सामान्य बाद के लिए जावा प्रोग्राम निम्नलिखित है -

उदाहरण

public class Demo{
   int subseq(char[] a, char[] b, int a_len, int b_len){
      int my_arr[][] = new int[a_len + 1][b_len + 1];
      for (int i = 0; i <= a_len; i++){
         for (int j = 0; j <= b_len; j++){
            if (i == 0 || j == 0)
            my_arr[i][j] = 0;
            else if (a[i - 1] == b[j - 1])
            my_arr[i][j] = my_arr[i - 1][j - 1] + 1;
            else
            my_arr[i][j] = max_val(my_arr[i - 1][j], my_arr[i][j - 1]);
         }
      }
      return my_arr[a_len][b_len];
   }
   int max_val(int val_1, int val_2){
      return (val_1 > val_2) ? val_1 : val_2;
   }
   public static void main(String[] args){
      Demo my_inst = new Demo();
      String my_str_1 = "MNSQR";
      String my_str_2 = "PSQR";
      char[] a = my_str_1.toCharArray();
      char[] b = my_str_2.toCharArray();
      int a_len = a.length;
      int b_len = b.length;
      System.out.println("The length of the longest common subsequence is"+ " " + my_inst.subseq(a, b, a_len,       b_len));
   }
}

आउटपुट

The length of the longest common subsequence is 3

डेमो नामक एक वर्ग में "सबसेक" नामक एक फ़ंक्शन होता है जो दिए गए स्ट्रिंग्स के लिए सबसे लंबा सामान्य अनुवर्ती देता है यानी str_1[0 से len(str_1-1) , str_2(0 to len(str_2-1) //2 'for' लूप दोनों तारों की लंबाई पर पुनरावृत्त होते हैं और यदि 'i' और 'j' दोनों 0 हैं, तो, सरणी के विशिष्ट सूचकांक 0 को असाइन किए जाते हैं। अन्यथा, my_arr [पहली स्ट्रिंग की लंबाई +1] [दूसरी स्ट्रिंग की लंबाई + 1] बनाया गया है।

मुख्य फ़ंक्शन डेमो क्लास के एक नए उदाहरण को परिभाषित करता है और दो स्ट्रिंग्स my_str_1 और my_str_2 को परिभाषित करता है। दोनों तारों को सरणियों में बदल दिया जाता है और उनकी लंबाई अलग-अलग चरों में जमा हो जाती है। फ़ंक्शन को इन मानों पर कहा जाता है।

यह गतिशील प्रोग्रामिंग तकनीक है जिसमें एक मान की गणना की जाती है और एक सरणी में संग्रहीत किया जाता है, इसे बार-बार गणना करने की आवश्यकता को हटाकर पुनरावृत्ति के रूप में। जब भी पहले से गणना किए गए तत्व की आवश्यकता होती है, तो इसे सरणी से प्राप्त किया जाता है।


  1. बाइनरी सर्च के लिए जावा प्रोग्राम (पुनरावर्ती)

    जावा में रिकर्सिव बाइनरी सर्च का कार्यक्रम निम्नलिखित है - उदाहरण public class Demo{    int rec_bin_search(int my_arr[], int left, int right, int x){       if (right >= left){          int mid = left + (right - left) / 2;       &nbs

  1. बाइनरी इंसर्शन सॉर्ट के लिए जावा प्रोग्राम

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

  1. कॉकटेल सॉर्ट के लिए जावा प्रोग्राम

    कॉकटेल सॉर्ट बबल सॉर्ट के विपरीत काम करता है, जिसमें तत्वों को बाएं से दाएं पुनरावृत्त किया जाता है, और सबसे बड़ा तत्व पहले अपनी सही स्थिति में लाया जाता है और इसी तरह। कॉकटेल क्रम में, तत्वों को बारी-बारी से दोनों दिशाओं (बाएं और दाएं) में पुनरावृत्त किया जाता है। कॉकटेल सॉर्ट के लिए कार्यक्रम निम