Преуредите низ тако да су парни елементи индекса мањи, а непарни елементи индекса већи


Ниво тешкоће Лако
Често питани у Авалара Епиц Системс Фоуркитес роблок Тесла
Ред

Изјава о проблему

Дали сте поредак of интегерс. Проблем „Преуредити низ тако да су парни елементи индекса мањи, а непарни елементи индекса већи“ тражи да се низ преуреди на такав начин да парни елементи индекса требају бити мањи од непарних елемената индекса у модификованом низу.

Пример

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

Објашњење: 2 је у положају парног индекса (0 индекс), па је мањи од следећег непарно индексираног елемента, 1 је мањи од 5 који се налази на непарном индексираном елементу.

Алгоритам за преуређивање низа тако да су чак и индексирани елементи мањи од непарно индексираних

1. Traverse the array from 0 to n-1(less than the length of the array).
2. Check if the index is even and the next element is smaller than the current element then swap both of the numbers.
3. Check if the index is odd and the next element is greater than the current element, then swap both of the numbers.
4. Print the array.

Објашњење

Дат је низ дужине н. Од нас се тражи да преуредимо низ на такав начин да су парни елементи индекса мањи од непарних индексираних елемената. То ћемо учинити заменом елемената ако услови нису задовољени. Прво морамо да проверимо да ли је он паран или непаран, а затим морамо да изменимо поредак.

Пређите низ од 0 до мање од н-1, где је н дужина низа. Узмите један мање од н-1 до преласка јер ћемо га упоредити са следећим елементом ако је присутан у низу. Дакле, то место морамо да оставимо ради упоређивања, јер ће, грешком, проћи. Ако петљу вршимо до мање од н, погодиће индекс који не постоји у низу. Због тога смо узели 0 до мање од н - 1 преласка.

Прећи ћемо низ и проверити за сваку вредност „и“ да ли је парна или непарна ако је парна и да ли је низ [и] већи од следећег елемента. То значи да је следећи положај елемента јер је и дефинитивно непаран, а тај непарни елемент мањи је од чак и позиционираног елемента. Тако ћемо заменити елементе јер је арр [и] тренутни парни елемент, а арр [и + 1] је следећи непарни позиционирани елемент.

Сада истовремено проверавамо да ли је вредност 'и' непарна и такође да ли је елемент у овом индексу мањи од претходног елемента, тада ћемо такође заменити вредности у низу. Након замене свих могућих вредности, тако формирани низ биће коначни и жељени излаз.

Преуредите низ тако да су парни елементи индекса мањи, а непарни елементи индекса већи

код

Ц ++ код за преуређивање низа тако да су чак и индексирани елементи мањи од непарно индексираних

#include <iostream>
using namespace std;

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

        if (i % 2 != 0 && arr[i] < arr[i + 1])
            swap(arr[i], arr[i + 1]);
    }
}

void printArray(int arr[], int size)
{
    for (int i = 0; i < size; i++)
        cout << arr[i] << " ";

    cout << endl;
}

int main()
{
    int arr[] = {  2,5,7,1,3,4  };
    int n = sizeof(arr) / sizeof(arr[0]);

    evenOddComparison (arr, n);

    printArray(arr, n);

    return 0;
}
2 7 1 5 3 4

Јава код за преуређивање низа тако да су чак и индексирани елементи мањи од непарно индексираних

class rearrangeArray
{
    public static void evenOddComparison(int arr[], int n)
    {

        int temp;
        for (int i = 0; i < n - 1; i++)
        {
            if (i % 2 == 0 && arr[i] > arr[i + 1])
            {
                temp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = temp;
            }
            if (i % 2 != 0 && arr[i] < arr[i + 1])
            {
                temp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = temp;
            }
        }
    }
    public static void printArray(int arr[], int size)
    {
        for (int i = 0; i < size; i++)
            System.out.print(arr[i] + " ");

        System.out.println();
    }
    public static void main(String[] args)
    {
        int arr[] = { 2,5,7,1,3,4 };
        int n = arr.length;

        evenOddComparison (arr, n);

        printArray(arr, n);
    }
}
2 7 1 5 3 4

Анализа сложености

Сложеност времена

Он) где „Н“ је број елемената у низу. Управо смо прешли низ и замијенили елементе тако да је временска сложеност линеарна.

Сложеност простора

О (1) јер смо користили константан простор, али програм као целина заузима О (н) простор.