एरे पुन: संगठित गर्नुहोस् कि त त सूचक तत्वहरू पनि सानो छन् र विषम सूचकांक तत्वहरू बढी छन्


कठिनाई तह सजिलो
बारम्बार सोधिन्छ Avalara एपिक सिस्टमहरू फोरकाइट्स Roblox tesla
एरे

समस्या वक्तव्य

तपाईले दिनु भएको छ array of पूर्णांकहरू। समस्या "एरे रिरेज गर्नुहोस् जस्तो कि अनुक्रमणिका तत्त्वहरू पनि सानो हुन्छन् र विषम अनुक्रमणिका तत्वहरू बढी हुन्छन्" एरेलाई पुन: व्यवस्थित गर्न सोध्छ जुन एकै परिमार्जित एर्रेमा सूचक तत्वहरू पनि बिजोर अनुक्रमणिका तत्त्वहरू भन्दा सानो हुनुपर्छ।

उदाहरणका

arr[]={ 2,5,7,1,3,4 }
2 7 1 5 3 4

स्पष्टीकरण: २ पनि अनुक्रमणिका स्थिति (० सूचकांक) मा छ त्यसैले यो अर्को बिजुली अनुक्रमणिका तत्त्व भन्दा सानो छ, १ than भन्दा सानो छ जुन बिजोर अनुक्रमणिका तत्त्वमा छ।

एल्गोरिथ्म एरेलाई पुन: व्यवस्थित गर्नका लागि कि अनुक्रमित तत्वहरू पनि बिजोर अनुक्रमित भन्दा सानो हुन्छन्

1. Traverse the array from 0 to n-1(less than the length of the array).
2. Check if the index is even and the next element is smaller than the current element then swap both of the numbers.
3. Check if the index is odd and the next element is greater than the current element, then swap both of the numbers.
4. Print the array.

स्पष्टीकरण

N को लम्बाईको एर्रे दिइयो। हामीलाई एर्रे लाई यस्तै प्रकारले पुन: व्यवस्थित गर्न भनिएको छ कि ईन्डेक्स एलिमेन्टहरू पनि बिजोर अनुक्रमणिका तत्त्वहरू भन्दा सानो छन्। हामी एलिमेन्ट्स बदली गरेर यो गर्नेछौं यदि सर्तहरू संतुष्ट छैनन् भने। पहिले हामीले यसको प्रकार जाँच गर्नुपर्नेछ कि यो समान छ वा अनौठो छ भने हामीले यसलाई परिमार्जन गर्नुपर्नेछ array.

एरे 0 बाट कम n-1 मा ट्रान्स गर्नुहोस् जहाँ एन एर्रेको लम्बाई हो। ट्राभर्सलमा n-1 भन्दा कम लिनुहोस् किनकि हामी अर्को एरेमेन्टसँग एर्रेमा अवस्थित भएमा यसको तुलना गर्न जाँदैछौं। त्यसैले हामीले तुलनाको लागि त्यो ठाउँ छोड्नु पर्छ अन्यथा यो त्रुटि मार्फत हुनेछ। यदि हामी n भन्दा कमसम्म लूप गर्छौं भने, त्यसो भए यसले सूचकांकमा हिर्काउँछ जुन एर्रेमा अवस्थित छैन। यसैकारण हामीले ० - n बाट कम लिनुभयो - १ ट्रभर्सल।

हामी एर्रेलाई ट्रान्सभर्स गर्नेछौं र 'i' को प्रत्येक मानको लागि जाँच गर्नेछौं यदि यो समान छ वा अनौंठो छ भने यो पनि समान छ र एरे पनि अर्को एलिमेन्ट भन्दा ठूलो छ। यसको मतलब अर्को एलिमेन्ट स्थिति हो किनकि म निश्चित रूपमा अनौंठो छ, र त्यो बिजुली पोजिशनिंग एलिमेन्ट पनि पोसीस्टेड एलिमेन्ट भन्दा कम छ। त्यसैले हामी एरिमेन्टको रूपमा स्वैप गर्न गइरहेका छौं [i] हालको सम्यक एलिमेन्ट हो र एर [i + १] अर्को विचित्र स्थित एलिमेन्ट हो।

अब एकै साथ हामी जाँच गर्छौं कि 'i' को मान बेजोड छ कि छैन र यदि यो अनुक्रमणिकामा एलिमेन्ट अघिल्लो एलिमेन्ट भन्दा सानो छ भने हामी एरेमा मान पनि बदल्ने छौं। सबै सम्भावित मानहरू स्व्याप गरिसके पछि, गठन भएको एरे अन्तिम र चाहिएको आउटपुट हुनेछ।

एरे पुन: संगठित गर्नुहोस् कि त त सूचक तत्वहरू पनि सानो छन् र विषम सूचकांक तत्वहरू बढी छन्

कोड

C ++ कोड एरेलाई पुन: व्यवस्थित गर्नका लागि कि अनुक्रमित तत्वहरू पनि बिजोर अनुक्रमित भन्दा सानो हुन्छन्

#include <iostream>
using namespace std;

void evenOddComparison (int* arr, int n)
{
    for (int i = 0; i < n - 1; i++)
    {
        if (i % 2 == 0 && arr[i] > arr[i + 1])
            swap(arr[i], arr[i + 1]);

        if (i % 2 != 0 && arr[i] < arr[i + 1])
            swap(arr[i], arr[i + 1]);
    }
}

void printArray(int arr[], int size)
{
    for (int i = 0; i < size; i++)
        cout << arr[i] << " ";

    cout << endl;
}

int main()
{
    int arr[] = {  2,5,7,1,3,4  };
    int n = sizeof(arr) / sizeof(arr[0]);

    evenOddComparison (arr, n);

    printArray(arr, n);

    return 0;
}
2 7 1 5 3 4

जाभा कोड एरे पुन: व्यवस्थित गर्न कि अनुक्रमित तत्वहरू पनि बिजोर अनुक्रमित भन्दा सानो हुन्छन्

class rearrangeArray
{
    public static void evenOddComparison(int arr[], int n)
    {

        int temp;
        for (int i = 0; i < n - 1; i++)
        {
            if (i % 2 == 0 && arr[i] > arr[i + 1])
            {
                temp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = temp;
            }
            if (i % 2 != 0 && arr[i] < arr[i + 1])
            {
                temp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = temp;
            }
        }
    }
    public static void printArray(int arr[], int size)
    {
        for (int i = 0; i < size; i++)
            System.out.print(arr[i] + " ");

        System.out.println();
    }
    public static void main(String[] args)
    {
        int arr[] = { 2,5,7,1,3,4 };
        int n = arr.length;

        evenOddComparison (arr, n);

        printArray(arr, n);
    }
}
2 7 1 5 3 4

जटिलता विश्लेषण

समय जटिलता

ऊ) जहाँ "N" एर्रेमा एलिमेन्ट्सको संख्या हो। हामीले भर्खर एर्रे पार गरिसकेका छौँ र एलिमेन्ट्स बदलेका छौं भने समय जटिलता रेखीय हुन्छ।

ठाउँ जटिलता

O (१) किनकि हामीले स्थिर ठाउँ प्रयोग गरेका छौं तर पूरै कार्यक्रमले ओ (एन) ठाउँ लिन्छ।