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

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

बाइटोनिक सॉर्ट में, तुलना पूर्वनिर्धारित क्रम (बाइटोनिक अनुक्रम) में होती है, न कि सॉर्ट किए जाने वाले डेटा पर निर्भर। आइए बाइटोनिक सॉर्ट जावा प्रोग्राम के लिए एक उदाहरण देखें:

उदाहरण

public class Demo{ 
    void compare_swap(int my_arr[], int i, int j, int direction){ 
        if ((my_arr[i] > my_arr[j] && direction == 1) || (my_arr[i] < my_arr[j] && direction == 0)){ 
            int temp = my_arr[i]; 
            my_arr[i] = my_arr[j]; 
            my_arr[j] = temp; 
        } 
    } 
    void merge_vals(int my_arr[], int low, int cnt, int direction){ 
        if (cnt>1){ 
            int k = cnt/2; 
            for (int i=low; i<low+k; i++) 
                compare_swap(my_arr,i, i+k, direction); 
            merge_vals(my_arr,low, k, direction); 
            merge_vals(my_arr,low+k, k, direction); 
        } 
    } 
    void sort_vals(int my_arr[], int low, int cnt, int direction){ 
        if (cnt>1){ 
            int k = cnt/2; 
            sort_vals(my_arr, low, k, 1); 
            sort_vals(my_arr,low+k, k, 0); 
            merge_vals(my_arr, low, cnt, direction); 
        } 
    } 
    static void print_vals(int my_arr[]){ 
        int n = my_arr.length; 
        for (int i=0; i<n; ++i) 
            System.out.print(my_arr[i] + " "); 
        System.out.println(); 
    } 
    public static void main(String args[]){ 
        int my_arr[] = {12, 67, 91, 54, 72, 32, 11, 0}; 
        int up = 1; 
        Demo my_ob = new Demo(); 
        System.out.println("क्लास का ऑब्जेक्ट बनाया गया है।"); 
        my_ob.sort_vals(my_arr, 0, my_arr.length, up); 
        System.out.println("बाइटोनिक सॉर्ट करने के बाद ऐरे है"); 
        print_vals(my_arr); 
    } 
}

आउटपुट

क्लास का ऑब्जेक्ट बनाया गया है। बाइटोनिक सॉर्ट करने के बाद ऐरे है 0 11 12 32 54 67 72 91

Demo नामक एक क्लास में compare_swap फंक्शन होता है जो ऐरे को पैरामीटर के रूप में लेता है, और जांचता है कि सॉर्टिंग किस दिशा में की जानी है। तदनुसार, तत्वों को स्वैप किया जाता है। merge_vals नामक एक अन्य फंक्शन परिभाषित किया जाता है जो ऐरे के माध्यम से पुनरावृति करता है और विशिष्ट मानों के साथ compare_swap फंक्शन को कॉल करता है।

अगला, merge_vals फंक्शन को विभिन्न पैरामीटर्स के साथ कॉल किया जाता है। sort_vals नामक एक अन्य फंक्शन परिभाषित किया जाता है जिसे फंक्शन के अंदर विभिन्न मानों के साथ कॉल किया जाता है। फिर इन सॉर्ट किए गए मानों को मर्ज किया जाता है। print_vals नामक एक स्टैटिक फंक्शन परिभाषित किया जाता है जो ऐरे को पैरामीटर के रूप में लेता है और ऐरे के एलिमेंट्स के माध्यम से for लूप चलाता है और इसे कंसोल पर प्रिंट करता है।

मुख्य फंक्शन एक ऐरे और up वेरिएबल के लिए एक मान परिभाषित करता है। एक नया क्लास ऑब्जेक्ट बनाया जाता है और परिभाषित ऐरे पर sort_now फंक्शन को कॉल किया जाता है। फिर, आउटपुट कंसोल पर प्रिंट किया जाता है।

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

    काउंटिंग सॉर्ट विशिष्ट कुंजी मानों वाली वस्तुओं की संख्या गिनता है। आइए एक उदाहरण देखें: नोट - नीचे दिया गया कोड नेगेटिव नंबरों के साथ भी उपयोग किया जा सकता है। उदाहरण import java.util.*; public class Demo{ static void count_sort(int[] arr){ int max_val = Arrays.stream(arr).max().ge

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

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

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

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