Рубрики

Поменяйте местами пары альтернативных границ

Учитывая массив arr [] из N целых чисел, задача состоит в том, чтобы поменять местами первый и последний элемент, затем третий и третий последний элемент, затем пятый и пятый последний и т. Д. Напечатайте окончательный массив после всех допустимых операций.

Input: arr[] = {1, 2, 3, 4, 5, 6}
Output: 6 2 4 3 5 1
Operation 1: Swap 1 and 6
Operation 2: Swap 3 and 4

Input: arr[] = {5, 54, 12, 63, 45}
Output: 45 54 12 63 5

Подход: инициализируйте указатель i = 0 и j = N — 1, затем поменяйте местами элементы в этих указателях и обновите i = i + 2 и j = j — 2 . Повторите эти шаги, пока я <J . Наконец распечатайте обновленный массив.

Ниже приведена реализация вышеуказанного подхода:

C ++

// C ++ реализация подхода
#include <bits/stdc++.h>

using namespace std;

  
// Утилита для печати
// содержимое массива

void printArr(int arr[], int n)

{

    for (int i = 0; i < n; i++)

        cout << arr[i] << " ";

}

  
// Функция для обновления массива

void UpdateArr(int arr[], int n)

{

  

    // Инициализируем указатели

    int i = 0, j = n - 1;

  

    // Пока есть элементы для обмена

    while (i < j) {

        int temp = arr[i];

        arr[i] = arr[j];

        arr[j] = temp;

  

        // Обновляем указатели

        i += 2;

        j -= 2;

    }

  

    // Распечатать обновленный массив

    printArr(arr, n);

}

  
// Код драйвера

int main()

{

    int arr[] = { 1, 2, 3, 4, 5, 6 };

    int n = sizeof(arr) / sizeof(arr[0]);

  

    UpdateArr(arr, n);

  

    return 0;

}

Джава

// Java реализация вышеуказанного подхода

class GFG 

{

      

    // Утилита для печати

    // содержимое массива

    static void printArr(int arr[], int n) 

    

        for (int i = 0; i < n; i++) 

            System.out.print(arr[i] + " "); 

    

      

    // Функция для обновления массива

    static void UpdateArr(int arr[], int n) 

    

      

        // Инициализируем указатели

        int i = 0, j = n - 1

      

        // Пока есть элементы для обмена

        while (i < j) 

        

            int temp = arr[i]; 

            arr[i] = arr[j]; 

            arr[j] = temp; 

      

            // Обновляем указатели

            i += 2

            j -= 2

        

      

        // Распечатать обновленный массив

        printArr(arr, n); 

    

      

    // Код драйвера

    public static void main (String[] args) 

    

        int arr[] = { 1, 2, 3, 4, 5, 6 }; 

        int n = arr.length; 

      

        UpdateArr(arr, n); 

    }

  
// Этот код предоставлен AnkitRai01

python3

# Python3 реализация подхода

  
# Утилита для печати
# содержимое массива

def printArr(arr, n):

  

    for i in range(n):

        print(arr[i], end = " ");

  
# Функция для обновления массива

def UpdateArr(arr, n):

  

    # Инициализировать указатели

    i = 0;

    j = n - 1;

  

    # Пока есть элементы для обмена

    while (i < j):

        temp = arr[i];

        arr[i] = arr[j];

        arr[j] = temp;

  

        # Обновлять указатели

        i += 2;

        j -= 2;

      

    # Распечатать обновленный массив

    printArr(arr, n);

  
# Код драйвера

if __name__ == '__main__':

    arr = [1, 2, 3, 4, 5, 6 ];

    n = len(arr);

  

    UpdateArr(arr, n);

  
# Этот код предоставлен PrinciRaj1992

C #

// C # реализация подхода

using System;

      

class GFG 

{

      

    // Утилита для печати

    // содержимое массива

    static void printArr(int []arr, int n) 

    

        for (int i = 0; i < n; i++) 

            Console.Write(arr[i] + " "); 

    

      

    // Функция для обновления массива

    static void UpdateArr(int []arr, int n) 

    

      

        // Инициализируем указатели

        int i = 0, j = n - 1; 

      

        // Пока есть элементы для обмена

        while (i < j) 

        

            int temp = arr[i]; 

            arr[i] = arr[j]; 

            arr[j] = temp; 

      

            // Обновляем указатели

            i += 2; 

            j -= 2; 

        

      

        // Распечатать обновленный массив

        printArr(arr, n); 

    

      

    // Код драйвера

    public static void Main (String[] args) 

    

        int []arr = { 1, 2, 3, 4, 5, 6 }; 

        int n = arr.Length; 

      

        UpdateArr(arr, n); 

    }

}

  
// Этот код предоставлен 29AjayKumar

Выход:

6 2 4 3 5 1

Рекомендуемые посты:

Поменяйте местами пары альтернативных границ

0.00 (0%) 0 votes