صف کو زیگ زیگ فیشن میں تبدیل کریں


مشکل سطح آرام سے
اکثر پوچھا جاتا ہے ایکسینچر ایمیزون فورکائٹس ٹیراداٹا زوم
لڑی

مسئلہ یہ بیان

"زیگ زگ فیشن میں سرے میں بدلیں" مسئلہ یہ بتاتا ہے کہ آپ کو ایک درجہ دیا جاتا ہے - عدد کا پریشانی بیان میں صف کو زگ زگ انداز میں ترتیب دینے کے لئے کہا گیا ہے تاکہ صف میں موجود عناصر like  a <b> c <d> ای <ایف.

مثال کے طور پر

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

وضاحت

5 دونوں 1 اور 2 (اس سے ملحقہ عناصر) سے بڑا ہے ، 7 اپنے دونوں ملحقہ عناصر سے بڑا ہے ، اسی طرح 8 بھی ہے۔

الگورتھم

1. Mark flag is equal to true.
2. Traverse the array from 0 to n-2, where n is the length of the array.
  1. Check if the flag is true
    1. Check if the current element is greater than the next element.
      1. Swap those values.
    2. Else, check if the current element is greater than the next element,
      1. Check if the current element is lesser than the next element.
        1. Swap those values.
3. Flip the value of the flag.

وضاحت

ہم نے ایک دیا ہے صف of اشارے. ہمارا کام صف کو زگ زگ انداز میں ترتیب دینا ہے۔ ہم نے ایک ایسی شرط رکھی ہے کہ یہاں تک کہ تعداد کے عنصر بھی اس کے دو ملحقہ عناصر سے زیادہ ہونا چاہ،۔a <b> c <d> ای <ف '. ہم یہاں دیکھ سکتے ہیں کہ b اور d اس کے دو ملحقہ عناصر سے زیادہ ہیں ، 'a' اور 'c' اس کے دو ملحقہ عناصر سے کم ہیں۔ ہمارا کام یہ ہے کہ دیئے گئے صفوں کا اس طرح بندوبست کیا جائے۔ اس کے ل we ، ہم اقدار کو تبدیل کرنے جارہے ہیں ، جبکہ صف کو عبور کرتے ہوئے ، جیسے زگ زگ انداز میں ترتیب دیا گیا ہے۔

ہمیں ایک نشان لگا دیا جائے گا بولین سچ سے قدر کریں ، پھر ہم لوپ کو عبور کرنا شروع کریں گے ، اور چیک کریں گے کہ آیا جھنڈا درست ہے یا نہیں۔ اگر یہ سچ ہے تو ، اگر ہم موجودہ قدر اس کی اگلی قیمت سے زیادہ ہے تو ہم موجودہ قیمت کی جانچ کریں گے۔ پھر ہم ان اقدار کو تبدیل کرنے جارہے ہیں۔ اور بولین اقدار کو جھوٹ پر نشان زد کریں۔ ہمیں صرف اس کی قیمت کو تبدیل کرنا ہے ، اگر یہ سچ ہے تو ، اسے غلط پر اپ ڈیٹ کریں ، اگر یہ غلط ہے تو ، اسے سچ پر اپ ڈیٹ کریں۔ لہذا ہر متبادل گزرنے کے ساتھ ، ہر تکرار کے ل flag پرچم کی مختلف اقدار ہوں گی۔ تو اس کے ساتھ ، صرف ایک حصہ پر عمل درآمد ہونے والا ہے ، اگر حصہ ہو یا کوئی اور حصہ۔

ایک ہی چیز جو ہم دوسرے حصے کے ساتھ کی جائے گی ، اقدار کو تبدیل کرنے کے ل.۔ اگر کسی محور میں صف کی موجودہ قیمت اگلی قیمت سے کم ہے۔ اور ٹراورسال کے بعد ، ہمیں ابھی سرنی کو پرنٹ کرنا ہے جس میں ہم نے تازہ کاری کی ہے۔

صف کو زیگ زیگ فیشن میں تبدیل کریں

 

ضابطے

سی ++ کوڈ کو صف کو زیگ زیگ فیشن میں تبدیل کرنا

#include <iostream>

using namespace std;

void sortZigZag(int arr[], int n)
{
    bool flag = true;

    for (int i=0; i<=n-2; i++)
    {
        if (flag)
        {
            if (arr[i] > arr[i+1])
                swap(arr[i], arr[i+1]);
        }
        else
        {
            if (arr[i] < arr[i+1])
                swap(arr[i], arr[i+1]);
        }
        flag = !flag;
    }
}
int main()
{
    int arr[] = {2,4,5,1,7,6,8};
    int n = sizeof(arr)/sizeof(arr[0]);
    sortZigZag(arr, n);
    for (int i=0; i<n; i++)
        cout << arr[i] << " ";
    return 0;
}
2 5 1 7 4 8 6

جاوا کوڈ کو صف کو زیگ زیگ فیشن میں تبدیل کرنا

import java.util.Arrays;

class zigzagArray
{
    public static void sortZigZag(int arr[])
    {
        boolean flag = true;

        int temp =0;

        for (int i=0; i<=arr.length-2; i++)
        {
            if (flag)
            {
                if (arr[i] > arr[i+1])
                {
                    temp = arr[i];
                    arr[i] = arr[i+1];
                    arr[i+1] = temp;
                }

            }
            else
            {
                if (arr[i] < arr[i+1])
                {
                    temp = arr[i];
                    arr[i] = arr[i+1];
                    arr[i+1] = temp;
                }
            }
            if(flag==true)
                flag=false;
            else
                flag=true;
        }
    }
    public static void main(String[] args)
    {
        int arr[] = {2,4,5,1,7,6,8};
        sortZigZag(arr);
        System.out.println(Arrays.toString(arr));
    }
}
[2, 5, 1, 7, 4, 8, 6]

پیچیدگی کا تجزیہ

وقت کی پیچیدگی

اے (ن) کہاں "این" صف میں عناصر کی تعداد ہے۔ چونکہ ہم نے ابھی صف میں موجود عناصر کو عبور کیا ہے۔ وقت کی پیچیدگی لکیری ہے۔

خلائی پیچیدگی

O (1) کیونکہ اضافی جگہ کی ضرورت نہیں ہے۔ چونکہ ہم نے کوئی اضافی جگہ استعمال نہیں کی ہے ، لہذا جگہ کی پیچیدگی مستقل ہے۔