Рубрики

Программа для циклического поворота массива на один

Для данного массива циклически вращайте массив по часовой стрелке на единицу.

Примеры:

Input:  arr[] = {1, 2, 3, 4, 5}
Output: arr[] = {5, 1, 2, 3, 4}

Ниже приведены шаги.
1) Сохраните последний элемент в переменной скажем х.
2) Переместите все элементы на одну позицию вперед.
3) Заменить первый элемент массива на x.

C ++

// C ++ код для программы
// циклически вращаться
// массив по одному
# include <iostream>

using namespace std;

  

void rotate(int arr[], int n)

{

    int x = arr[n - 1], i;

    for (i = n - 1; i > 0; i--)

    arr[i] = arr[i - 1]; 

    arr[0] = x;

}

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

int main() 

{

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

    int n = sizeof(arr) / 

            sizeof(arr[0]);

  

    cout << "Given array is \n";

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

        cout << arr[i];

  

    rotate(arr, n);

  

    cout << "\nRotated array is\n";

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

        cout << arr[i];

  

    return 0;

}

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

С

#include <stdio.h>

  

void rotate(int arr[], int n)

{

   int x = arr[n-1], i;

   for (i = n-1; i > 0; i--)

      arr[i] = arr[i-1];

   arr[0] = x;

}

  

int main()

{

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

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

  

    printf("Given array is\n");

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

        printf("%d ", arr[i]);

  

    rotate(arr, n);

  

    printf("\nRotated array is\n");

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

        printf("%d ", arr[i]);

  

    return 0;

}

Джава

import java.util.Arrays;

  

public class Test

{

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

      

    // Метод вращения

    static void rotate()

    {

       int x = arr[arr.length-1], i;

       for (i = arr.length-1; i > 0; i--)

          arr[i] = arr[i-1];

       arr[0] = x;

    }

      

    / * Драйвер программы * /

    public static void main(String[] args) 

    {

        System.out.println("Given Array is");

        System.out.println(Arrays.toString(arr));

          

        rotate();

          

        System.out.println("Rotated Array is");

        System.out.println(Arrays.toString(arr));

    }

}

python3

# Python3 код для программы
# циклически вращать массив на единицу

  
# Способ поворота

def rotate(arr, n):

    x = arr[n - 1]

      

    for i in range(n - 1, 0, -1):

        arr[i] = arr[i - 1];

          

    arr[0] = x;

  

  
# Функция драйвера

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

n = len(arr)

print ("Given array is")

for i in range(0, n):

    print (arr[i], end = ' ')

  
rotate(arr, n)

  

print ("\nRotated array is")

for i in range(0, n):

    print (arr[i], end = ' ')

  
# Эта статья предоставлена
# by saloni1297

C #

// C # код для программы циклически
// вращаем массив на единицу

using System;

  

public class Test

{

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

      

    // Метод вращения

    static void rotate()

    {

    int x = arr[arr.Length - 1], i;

      

    for (i = arr.Length - 1; i > 0; i--)

        arr[i] = arr[i-1];

    arr[0] = x;

    }

      

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

    public static void Main() 

    {

        Console.WriteLine("Given Array is");

        string Original_array = string.Join(" ", arr);

        Console.WriteLine(Original_array);

           

        rotate();

          

        Console.WriteLine("Rotated Array is");

        string Rotated_array = string.Join(" ", arr);

        Console.WriteLine(Rotated_array);

    }

}

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

PHP

<?php
// PHP код для программы
// циклически вращаться
// массив по одному

  

function rotate(&$arr, $n)

{

    $x = $arr[$n - 1];

    for ($i = $n - 1;

         $i > 0; $i--)

    $arr[$i] = $arr[$i - 1]; 

    $arr[0] = $x;

}

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

$arr = array(1, 2, 3, 4, 5);

$n = sizeof($arr);

  

echo "Given array is \n";

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

    echo $arr[$i] . " ";

  

rotate($arr, $n);

  

echo "\nRotated array is\n";

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

    echo $arr[$i] . " ";

  
// Этот код добавлен
// ChitraNayal
?>


Выход:

Given array is
1 2 3 4 5
Rotated array is
5 1 2 3 4

Сложность времени: O (n) Поскольку нам нужно перебрать все элементы
Вспомогательное пространство: O (1)

Вышеуказанный вопрос также можно решить с помощью алгоритма обращения

Пожалуйста, напишите комментарии, если вы обнаружите какую-либо ошибку в приведенном выше коде / алгоритме, или найдете другие способы решения той же проблемы.

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

Программа для циклического поворота массива на один

0.00 (0%) 0 votes