অ্যারেটি জিগ-জাগ ফ্যাশনে রূপান্তর করুন  


কাঠিন্য মাত্রা সহজ
প্রায়শই জিজ্ঞাসা করা হয় Accenture মর্দানী স্ত্রীলোক ফোরকিটস তেরদাটা জুম
বিন্যাস

সমস্যা বিবৃতি  

"জিগ-জাগ ফ্যাশনে অ্যারে রূপান্তর করুন" সমস্যাটি বলে যে আপনাকে একটি দেওয়া হয়েছে - পূর্ণসংখ্যার সমস্যার বিবৃতিটি অ্যারেগুলিকে জিগ-জাগ পদ্ধতিতে বাছাই করতে বলে যাতে অ্যারের উপাদানগুলি দেখতে à  a <b> c <d> e <f.

উদাহরণ  

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 পূর্ণসংখ্যার। আমাদের কাজটি অ্যারেটিকে জিগজ্যাগ পদ্ধতিতে পুনরায় সাজানো to আমরা একটি শর্ত দিয়েছি যে এমনকি সংখ্যার উপাদানগুলি তার দুটি সংলগ্ন উপাদানের চেয়েও বড় হওয়া উচিত, এক পদ্ধতিতেa <b> c <d> e <f '। আমরা এখানে দেখতে পাচ্ছি যে খ এবং ডি এর দুটি সংলগ্ন উপাদানের চেয়ে বড়, 'ক' এবং 'সি' এর দুটি সংলগ্ন উপাদানের চেয়ে কম। আমাদের কাজটি হ'ল প্রদত্ত অ্যারেগুলি এভাবে সাজানো। এটির জন্য, আমরা অ্যারেগুলি অনুসরণ করার সময় মানগুলি অদলবদল করতে যাচ্ছি, যেমন একটি জিগজ্যাগ পদ্ধতিতে সাজানো।

আরো দেখুন
প্রদত্ত পছন্দসই অ্যারে পেতে সর্বনিম্ন পদক্ষেপ গণনা করুন

আমরা একটি চিহ্নিত করা হবে বুলিয়ান মানটির সত্য হিসাবে, তারপরে আমরা লুপটি অনুসরণ করতে শুরু করব, এবং পতাকাটি সত্য কিনা, তা পরীক্ষা করব। যদি এটি সত্য হয় তবে বর্তমান মানটি পরবর্তী মানের চেয়ে বেশি হলে আমরা বর্তমান মানটি পরীক্ষা করব। তারপরে আমরা সেই মানগুলি অদলবদল করতে যাচ্ছি। এবং বুলিয়ান মানগুলি মিথ্যা হিসাবে চিহ্নিত করুন। আমাদের কেবল এটির মানটি ফিরিয়ে দিতে হবে, যদি এটি সত্য হয় তবে এটি মিথ্যাতে আপডেট করুন, যদি এটি মিথ্যা হয় তবে সত্যে আপডেট করুন। সুতরাং প্রতিটি বিকল্প ট্র্যাভারসাল সহ, প্রতিটি পুনরাবৃত্তির জন্য আলাদা আলাদা পতাকা মান থাকবে। সুতরাং এটির সাথে, কেবলমাত্র একটি অংশ কার্যকর হতে চলেছে, যদি অংশ বা অন্য অংশ হয়।

একই জিনিসটি আমরা অন্য অংশের সাথে সম্পন্ন করব, মানগুলি অদলবদল করতে। ট্র্যাভারসালে অ্যারের বর্তমান মান যদি পরবর্তী মানের চেয়ে কম হয়। এবং ট্র্যাভারসাল করার পরে, আমাদের কেবলমাত্র অ্যারে মুদ্রণ করতে হবে যেখানে আমরা আপডেট করেছি।

অ্যারেটি জিগ-জাগ ফ্যাশনে রূপান্তর করুনপিন

 

কোড  

সি ++ কোডটি অ্যারেগুলিকে জিগ-জাগ ফ্যাশনে রূপান্তর করতে

#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]

জটিলতা বিশ্লেষণ  

সময় জটিলতা

উপর) কোথায় "এন" অ্যারেতে উপাদানগুলির সংখ্যা। যেহেতু আমরা অ্যারের উপাদানগুলিতে সবেমাত্র পেরিয়েছি। সময় জটিলতা রৈখিক।

আরো দেখুন
একটি বর্ধমান অনুচ্ছেদের সর্বোচ্চ পণ্য

স্পেস জটিলতা ity

ও (1) কোন অতিরিক্ত স্থান প্রয়োজন হিসাবে। যেহেতু আমরা কোনও অতিরিক্ত স্থান ব্যবহার করি নি, স্পেস জটিলতা স্থির থাকে।