짝수 위치가 홀수보다 크도록 배열 재 배열

난이도 쉽게
자주 묻는 질문 아마존 링크드 인 오요 룸 타임즈 인터넷 조호 (Zoho)
배열 재정비 정렬조회수 25

문제 정책

정수 배열이 있다고 가정합니다. “짝수 위치가 홀수보다 크도록 배열 재 배열”문제는 배열의 짝수 위치에있는 요소가 바로 앞의 요소보다 커야하는 배열 재 배열을 요구합니다.

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

배치 된 짝수가 홀수보다 크도록 배열을 재배 열하는 Java 코드

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

복잡성 분석

시간 복잡성

의 위에)  어디에 "엔" 배열의 요소 수입니다. 선형 시간 복잡성으로 수행 할 수있는 배열 만 탐색했습니다.

공간 복잡성

알고리즘은 O (1) 공간 복잡성. 이 알고리즘은 내부 접근 방식이므로 일정한 공간이 필요합니다. 그러나 전체 프로그램은 입력으로 인해 O (N) 공간 복잡성이 있습니다.

Translate »