इस तरह के अरेंज अरेंजमेंट भी अजीब से अधिक होते हैं


कठिनाई स्तर आसान
में अक्सर पूछा वीरांगना लिंक्डइन ओयो कमरे टाइम्स इंटरनेट Zoho
ऐरे पुनर्व्यवस्थित करें छंटाई

समस्या का विवरण

मान लीजिए कि आपके पास एक पूर्णांक सरणी है। समस्या "पुनर्व्यवस्थित व्यूह, जैसे कि विषम स्थिति से भी अधिक है" सरणी को पुनर्व्यवस्थित करने के लिए कहती है सरणी में किसी भी स्थिति में ऐसे तत्व तत्व से ठीक पहले होने चाहिए।

Arr [i-1] <= Arr [i], यदि स्थिति 'i' विषम है।

Arr [i-1]> = Arr [i], यदि स्थिति 'i' सम है।

उदाहरण

Arr[] = {1, 4, 5, 2, 7}
1 7 2 5 4

स्पष्टीकरण: स्थानों पर हर तत्व पिछले स्थिति (यानी विषम स्थिति) के तत्वों से अधिक है।

कलन विधि

1. Traverse the array from 0 to n (length of the array).
    1. Check if the position is even or odd if it is even,
        2. If arr[i] is greater than the arr[i-1], then swap the array elements.
    2. Else, if arr[i] is smaller than the arr[i-1], then swap the array elements.
2. Print the array.

व्याख्या

हमने ए पूर्णांक सरणी। हमने पुनर्व्यवस्थित करने के लिए कहा है सरणी इस तरह से कि स्थिति में भी तत्वों को तत्वों की तुलना में पहले से अधिक होना चाहिए। यहाँ याद रखें हम 0-आधारित अनुक्रमण पर विचार नहीं करेंगे। तो सरणी के पहले तत्व को विषम स्थिति में माना जाएगा। और दूसरा भी स्थिति में और इतने पर। विचार सरणी को पार करना और सरणी की विषम और सम स्थिति की जांच करना है। जैसा कि पहले उल्लेख किया गया है, 0-आधारित अनुक्रमण स्थिति पर विचार नहीं कर रहा है। तो हम पहले तत्व को 0 वें स्थान से उठाकर विषम स्थिति में मान लेंगे क्योंकि यह पहली स्थिति में है और 1 एक विषम संख्या है। औपचारिक रूप से, हम इस प्रश्न में 1-आधारित अनुक्रमण का अनुसरण कर रहे हैं।

हम क्या करने जा रहे हैं, हमें स्थिति 1 से सरणी को पीछे हटाना है और जाँच करना है कि क्या स्थिति है। यदि यह सत्य है तो हम जाँचेंगे कि क्या पोस्ट किया गया तत्व पहले से मौजूद तत्वों से अधिक है। यदि यह सत्य है, तो मूल्यों को स्वैप करें। हम यह भी जांच सकते हैं कि क्या तत्व स्थिति विषम नहीं है, यह भी काम कर सकता है। और बाद में भी स्थिति तत्व के लिए जाँच पहले से तैनात की तुलना में अधिक है।

हमें बस कुछ चीजों को याद रखना चाहिए, अगर स्थिति में भी तत्व उस तत्व के मूल्य से अधिक नहीं है जो उस स्थिति में संग्रहीत है जो वर्तमान तत्व से भी पहले तैनात है, तो हमें उन मूल्यों को बदलना या स्वैप करना चाहिए। ताकि, वे क्रम में आ सकें जैसे कि सम्‍मिलित तत्‍व पहले से स्‍थित या विषम रूप से स्‍थित तत्‍व से अधिक हैं। अंत में, सरणी को प्रिंट करें, जिसमें स्वैपिंग की गई थी।

इस तरह के अरेंज अरेंजमेंट भी अजीब से अधिक होते हैं

कोड

C ++ कोड को सरणी को फिर से व्यवस्थित करने के लिए जैसे कि विषम से भी अधिक हो

#include<iostream>

using namespace std;

void swap(int* a, int* b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}

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

int main()
{
    int arr[] = {1, 4, 5, 2, 7};
    int n = sizeof(arr)/sizeof(arr[0]);
    rearrangeEvenPositioned(arr, n);
    for (int i = 0; i < n; i++)
        cout << arr[i] << " ";
    return 0;
}
1 5 2 7 4

जावा कोड सरणी को फिर से व्यवस्थित करने के लिए, यहां तक ​​कि विषम से भी अधिक है

class rearrangeArray1
{
    public static void rearrangeEvenPositioned(int arr[], int n)
    {
        for (int i = 1; i < n; i++)
        {
            if (i % 2 == 0)
            {
                if (arr[i] > arr[i - 1])
                {
                    int temp=arr[i-1];
                    arr[i-1]=arr[i];
                    arr[i]=temp;
                }
            }
            else
            {
                if (arr[i] < arr[i - 1])
                {
                    int temp=arr[i-1];
                    arr[i-1]=arr[i];
                    arr[i]=temp;
                }
            }
        }
    }
    public static void main(String args[])
    {
        int arr[] = {1, 4, 5, 2, 7};
        int n = arr.length;
        rearrangeEvenPositioned(arr, n);
        for (int i = 0; i < n; i++)
            System.out.print(arr[i]+" ");

    }
}

1 5 2 7 4

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

समय जटिलता

पर)  जहां "एन" सरणी में तत्वों की संख्या है। हमने केवल उस सरणी को ट्रेस किया है जिसे रैखिक समय जटिलता में किया जा सकता है।

अंतरिक्ष जटिलता

एल्गोरिथ्म है ओ (1) अंतरिक्ष की जटिलता। यह एल्गोरिथ्म एक इन-प्लेस दृष्टिकोण है इस प्रकार यह निरंतर स्थान लेता है। लेकिन पूरे कार्यक्रम में इनपुट के कारण O (N) स्थान की जटिलता है।