Search This Blog

Thursday, March 8, 2012

Bubble Sorting


आज हम बबल सोर्ट का प्रोग्राम जावा में बनायेगे । हम इसको इतनी बारीकी से सीखेंगे की आज के बाद आपको इस प्रोग्राम को किसी भी कंप्यूटर भाषा में बनाने में कोई परेशानी नहीं होगी ।
उदहारण के लिए एक अर्रे लीजिये "5 1 4 2 8" और इसको सोर्ट कीजिये छोटे से बड़े नंबर की तरफ बबल सोर्ट के द्वारा ।
हर स्टेप में , नंबर जो बोल्ड में लिखे हुए है उन्हें compare करेंगे  और उसके लिए हमे तीन पास की आवश्यकता है ।
पहला पास:
( 5 1 4 2 8 )  ( 1 5 4 2 8 ), यहाँ पर अल्गोरिथम पहले दो नंबर को compare करेगी और फिर उन्हें स्वेप करेगी ।
( 1 5 4 2 8 )  ( 1 4 5 2 8 ), Swap करो क्यों की  5 > 4
( 1 4 5 2 8 )  ( 1 4 2 5 8 ), Swap करो क्यों की  5 > 2
( 1 4 2 5 8 )  ( 1 4 2 5 8 ), यहाँ पर क्यों की सारे एलेमेन्ट पहले से ही आर्डर में है( 8 > 5 ) इसीलिए अल्गोरिथम उन्हें स्वप नहीं करेगी ।

दूसरा पास :
( 1 4 2 5 8 )  ( 1 4 2 5 8 )
( 1 4 2 5 8 )  ( 1 2 4 5 8 ), Swap करे क्यों की  4 > 2
( 1 2 4 5 8 )  ( 1 2 4 5 8 )
( 1 2 4 5 8 )  ( 1 2 4 5 8 )


यहाँ अल्गोरिथम पहले से ही स्वप हो चुकी पर क्यों की उसे इसका पता नहीं है , इसीलिए वोह यह पूरा पास चलेगी नंबर में बिना कोई परिवर्तन किये ।
तीसरा  Pass:
( 1 2 4 5 8 )  ( 1 2 4 5 8 )
( 1 2 4 5 8 )  ( 1 2 4 5 8 )
( 1 2 4 5 8 )  ( 1 2 4 5 8 )

( 1 2 4 5 8 )  ( 1 2 4 5 8 )


/*
       जावा का बबल सोर्ट का example
        इस example से हमे यह पता लगेगा की बबल सोर्ट से हम integers को कैसे सोर्ट करते है । बबल सोर्ट सोर्टिंग अल्गोरिथम में सबसे आसन है ।
*/

public class BubbleSort {

        public static void main(String[] args) {
             
                //integer अर्रे जिसे हम सोर्ट करना चाहते है
                int intArray[] = new int[]{5,1,4,2,8};
             
                //सोर्टिंग से पहले इस अर्रे को प्रिंट कराये
                System.out.println("Array Before Bubble Sort");
                for(int i=0; i < intArray.length; i++){
                        System.out.print(intArray[i] + " ");
                }
             
                //bubble sort अल्गोरिथम के द्वारा अर्रे को सोर्ट करने वाला function
                bubbleSort(intArray);
             
                System.out.println("");
             
                // bubble sort अल्गोरिथम के बाद अर्रे को प्रिंट करना
                System.out.println("Array After Bubble Sort");
                for(int i=0; i < intArray.length; i++){
                        System.out.print(intArray[i] + " ");
                }

        }

        private static void bubbleSort(int[] intArray) {
             
                /*
                 *  bubble सोर्ट में हम अर्रे को पहले नंबर से  traverse करते है
                 * और  array_length - 1 तक compare करते रहते है  and और हर एलिमेंट को उसके अगले नंबर
                 *  से compare किया जाता है
                 * नंबर को स्वेप अगले नंबर से स्वेप करे अगर अगला नंबर बड़ा हो ।
                 *
                 * Bubble sort की स्टेप्स इस प्रकार है
                 *
                 * 1. Compare array[0] & array[1]
                 * 2. If array[0] > array [1] swap it.
                 * 3. Compare array[1] & array[2]
                 * 4. If array[1] > array[2] swap it.
                 * ...
                 * 5. Compare array[n-1] & array[n]
                 * 6. if [n-1] > array[n] then swap it.
                 *
                 * इस स्टेप के बाद आखरी इंडेक्स में हमे सबसे बड़ा नंबर मिलेगा
                 *
                 * इसी स्टेप को repeat करो  array[1] to array[n-1]
                 *
                 */
             
                int n = intArray.length;
                int temp = 0;
             
                for(int i=0; i < n; i++){
                        for(int j=1; j < (n-i); j++){
                             
                                if(intArray[j-1] > intArray[j]){
                                        //swap the elements!
                                        temp = intArray[j-1];
                                        intArray[j-1] = intArray[j];
                                        intArray[j] = temp;
                                }
                             
                        }
                }
     
        }
}

/*
बबल सोर्ट का output इस प्रकार होगा

Array Before Bubble Sort
5 1 4 2 8
Array After Bubble Sort
1 2 4 5 8

*/




Sunday, March 4, 2012

Harmonic Series




हारमोनिक series वो series होती है जो लयबद्ध(संगीत में ) तरीके से लिखी जाती है । ऊपर दी गयी series को देख कर हम यह पता लगा सकते है की इसमें १०० वा नंबर क्या होगा? इसी प्रकार अगर में आपसे इन १०० नंबर का जोड़निकालने को कहू तो भी आप निकाल सकते है । हम यहाँ ऐसा प्रोग्राम बना रहे है जो यह जोड़ हमारे लिए निकाल सकता है ।

/*************************************************************************
 *  Compilation:  javac Harmonic.java
 *  Execution:    java Harmonic N
 *  
 *  इस हारमोनिक क्रम का N नंबर तक का जोड़ प्रिंट करेगा: 1/1 + 1/2 + ... + 1/N.
 * 
 *  % java Harmonic 10
 *  2.9289682539682538
 *
 *  % java Harmonic 10000
 *  9.787606036044348
 *
 *************************************************************************/

public class Harmonic { 
    public static void main(String[] args) { 

        // command-line पर दी गयी संख्या 
        int N = Integer.parseInt(args[0]);

        // compute 1/1 + 1/2 + 1/3 + ... + 1/N
        double sum = 0.0;
        for (int i = 1; i <= N; i++) {
            sum += 1.0 / i;
        }

        // Nth harmonic नंबर प्रिंट करेगा 
        System.out.println(sum);
    }

}

Introduction of While loop

While लूप बहुत ही महत्वपूर्ण लूप है . इस लूप को हम जब तब चलाते है जब तक की इस लूप के अंदर 
की condition false नहीं हो जाती । जैसे की हमे दो दी टेबल लिखनी है तो हम प्रोग्राम को बता सकते है
की हम टेबल तब तक प्रिंट करना चाहते है जब तक i की value १० नहीं हो जाये| 
इस प्रोग्राम में हम २ की टेबल प्रिंट करेंगे . यह बहुत आसन प्रोग्राम है आप इसको एक बार बनाये और
फिर इसको समझने की कोशिश करे तो आपको While लूप का महत्व भी पता लग जाएगा । 

/*************************************************************************
 *  Compilation:  javac TwoTable.java
 *  Execution:    java TwoTable
 * 
 *  दो की टेबल प्रिंट करो जब तक इ की value १० ना हो जाए । इन values के लिए i = 1 to 10. 
 *  इस काम को हम While लूप के साथ करेंगे और समझेंगे की बार बार repeat होने वाले काम को While 
 *  लूप से कैसे किया जा सकता है ।
 *  % java TwoTable
 *  2 * 1 = 2
 *  2 * 2 = 4 
 *  2 * 3 = 6
 *  2 * 4 = 8
 *  2 * 5 = 10 
 *  2 * 6 = 12
 * 2 * 7 = 14
 *  2 * 8 = 16 
 *  2 * 9 = 18 
 *  2 * 10 = 20
 
 *
 *************************************************************************/

public class TwoTable { 
   public static void main(String[] args) {

      // पुराना तरीका while लूप के बिना  
      System.out.println("2 * 1 = 2");
      System.out.println("2 * 2 = 4");
      System.out.println("2 * 3 = 6");

      // बची हुई टेबल नए तरीके के साथ जिसमे हम while लूप का उसे करेंगे 
      int i = 4;
      while (i <= 10) {
         System.out.print("2 * " + i + " = "); 
   System.out.println(2*i);
         i = i + 1;
      }

   }
}

सम्भंदित विडियो: 

Sunday, January 15, 2012

Finding a integer in Array

/**
 * हम इस प्रोग्राम में एक अर्रे A में N integer को सर्च करेंगे, अगर N हमे अर्रे में नहीं मिला तो
 * हम -1 को return करेंगे अन्यथा अगर N अर्रे में है तो हमे जहा अर्रे मिला उसका index को return
 * करेंगे, index i की वोह पहली value है जो A[i] == N condition को satisfy करती है.
 */

Thursday, December 15, 2011

Fibonacci Series

हम यहाँ पर पहले 50 नम्बरों की fibonacci series को प्रिंट कराएँगे | जैसा की आप ऊपर देख सकते है,
fibonaaci series में पहले और दुसरे नंबर का जोड़ तीसरा नंबर होता है | इस प्रोग्राम को बनाने के लिए
हमे while लूप का उसे करना पड़ेगा | यहाँ पर हम पहले दो नंबर declare करेंगे और फिर उससे तीसरा नंबर 
निकालेंगे | इसी प्रकार हम पूरी series बना लेंगे | 

Monday, November 28, 2011

What is Enum ?

enum एक प्रकार का डाटाटाइप है जिसके पास एक पूर्व से निर्धारित लिस्ट होती है | यह लिस्ट हम 
enum को देक्लारे करते वक़्त ही उसमे स्टोर करा देते है | कही मायनों में enum boolean डाटाटाइप
से काफी मिलता है क्यों की उसमे भी दो पूर्व निर्धारित values जैसे true और false पहले 
से स्टोर रहती है| लेकिन boolean पहले से प्रोग्रम्मिंग भाषा में होता है जबकि enum नहीं | 
निचे हम एक उदहारण से देखेंगे की इसको प्रोग्राम में कैसे प्रयोग किया जाता है | 
enum main routine के बहार भी declare हो सकता है |

Friday, November 25, 2011

Java Class Inheritance

जावा में साधारणतः ऑब्जेक्ट को क्लास के द्वारा define किया जाता है । इतना ही नहीं कही बार सिर्फ क्लास का नाम सुनकर ही आपको ऑब्जेक्ट के बारे में कही जानकारी स्वत मिल जाती है | जैसे में आपको कहू की यहाँ हम हीरो ट्रेक्स की बात कर रहे है , तो आपको कुछ अटपटा सा लगेगा पर जैसे ही में आपको कहूँगा की यह साइकिल क्लास का ऑब्जेक्ट है , आप कही बातो का अंदाज़ा स्वयं ही लगा लेंगे जैसे इसके दो tyre होंगे | इसमें pedal होंगे , रफ़्तार होगी और भी कही चीज़े |