අරාව සිග්-සැග් විලාසිතාවට පරිවර්තනය කරන්න  


දුෂ්කරතා මට්ටම පහසු
නිතර අසනු ලැබේ ඇක්සෙන්චර් ඇමේසන් ෆෝකයිට් Teradata Xome
අරා

ගැටළු ප්රකාශය  

“අරාව සිග්-සැග් විලාසිතාවට පරිවර්තනය කරන්න” යන ගැටලුවේ සඳහන් වන්නේ ඔබට ලබා දී ඇති බවයි - නිඛිලවල. ගැටළු ප්‍රකාශය මඟින් අරාව සිග්-සැග් ආකාරයෙන් වර්ග කිරීමට අසයි, එනම් අරාවෙහි මූලද්‍රව්‍ය like ලෙස පෙනේ  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 නිඛිල. අපගේ කර්තව්‍යය වන්නේ අරාව සිග්සැග් ආකාරයකට නැවත සකස් කිරීමයි. සංඛ්‍යා මූලද්‍රව්‍ය පවා එහි යාබද මූලද්‍රව්‍ය දෙකට වඩා විශාල විය යුතු කොන්දේසියක් අප විසින් ලබා දී ඇත.a <b> c <d> e <f '. B සහ d එහි යාබද මූලද්‍රව්‍ය දෙකට වඩා විශාල බව අපට මෙහි දැකිය හැකිය, 'a' සහ 'c' එහි යාබද මූලද්‍රව්‍ය දෙකට වඩා අඩුය. අපගේ කර්තව්‍යය වන්නේ දී ඇති අරාව මේ ආකාරයෙන් සකස් කිරීමයි. මේ සඳහා, අපි අගයන් හුවමාරු කර ගැනීමට යන අතර, අරාව හරහා ගමන් කරන අතර, ඒවා සිග්සැග් ආකාරයෙන් සකසා ඇත.

මෙයද බලන්න
දී ඇති අපේක්ෂිත අරාව ලබා ගැනීම සඳහා අවම පියවර ගණන් කරන්න

අපව එකක් ලෙස සලකුණු කරනු ලැබේ බූලියන් අගය සත්‍යය නම්, අපි යන්නේ ලූපය හරහා ගමන් කිරීම ආරම්භ කර ධජය සත්‍යද නැද්ද යන්න පරීක්ෂා කරන්න. එය සත්‍ය නම්, වත්මන් අගය එහි ඊළඟ අගයට වඩා වැඩි නම් අපි වත්මන් අගය පරීක්ෂා කරන්නෙමු. එවිට අපි එම අගයන් මාරු කිරීමට යන්නෙමු. බූලියන් අගයන් අසත්‍ය ලෙස සලකුණු කරන්න. අපට එහි වටිනාකම ආපසු හැරවිය යුතුය, එය සත්‍ය නම් එය අසත්‍යයට යාවත්කාලීන කරන්න, එය අසත්‍ය නම් එය සත්‍යයට යාවත්කාලීන කරන්න. එබැවින් සෑම විකල්ප ගමන් මාර්ගයකම, සෑම පුනරාවර්තනයක් සඳහාම විවිධ ධජ අගයන් ඇත. ඉතින් මේ සමඟ, කොටසක් පමණක් හෝ වෙනත් කොටසක් ක්‍රියාත්මක කිරීමට යන්නේ කොටසක් පමණි.

සාරධර්ම හුවමාරු කර ගැනීම සඳහා අනෙක් කොටස සමඟ අපම කරනු ඇත. සංචලනයක අරාවෙහි වත්මන් අගය ඊළඟ අගයට වඩා අඩු නම්. ගමන් කිරීමෙන් පසුව, අප විසින් යාවත්කාලීන කිරීම් සිදු කර ඇති අරාව මුද්‍රණය කළ යුතුය.

අරාව සිග්-සැග් විලාසිතාවට පරිවර්තනය කරන්නපින්

 

කේතය  

අරා සිග්-සැග් විලාසිතාවට පරිවර්තනය කිරීම සඳහා සී ++ කේතය

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

සංකීර්ණ විශ්ලේෂණය  

කාල සංකීර්ණත්වය

සාමාන්ය (n) එහිදී “N” යනු අරාවෙහි ඇති මූලද්‍රව්‍ය ගණන වේ. අපි දැන් අරාවෙහි ඇති මූලද්‍රව්‍ය හරහා ගමන් කර ඇති බැවින්. කාල සංකීර්ණතාව රේඛීය වේ.

මෙයද බලන්න
වැඩිවන පසු විපරමක උපරිම නිෂ්පාදනය

අභ්‍යවකාශ සංකීර්ණතාව

ඕ (1) අමතර ඉඩක් අවශ්‍ය නොවන බැවින්. අප කිසිදු අමතර ඉඩක් භාවිතා කර නොමැති බැවින් අවකාශයේ සංකීර්ණතාව නියත ය.