Поиск по сайту:

Программа Python для поворота элементов массива


После объявления массива элементы массива до определенного индекса поворачиваются так, что первые элементы до желаемого индекса помещаются в последний, следующий за последним элементом массива. Давайте обсудим это со сценарием ввода-вывода.

Сценарий ввода-вывода

Рассмотрим массив arr=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].

  • Можно четко сказать, что исходный массив состоит из 10 элементов и индекс последнего элемента равен 9.

  • Предположим, что массив вращается двумя элементами.

  • В этом случае первые два элемента размещаются после последнего элемента «10».

  • Сначала элемент «1» будет помещен после 10, а после размещения элемента «1» следующий элемент «2» будет помещен рядом с 1.

Итак, результирующий массив будет arr=[3, 4, 5, 6, 7, 8, 9, 10, 1, 2].

Пример

В этом примере мы собираемся обсудить процесс вращения определенных элементов (всех за раз) массива на определенное количество оборотов. Для создания программы необходимо выполнить следующие шаги:

  • Объявите функцию или метод, который занимается вращением элементов массива.

  • (Обратите внимание, что параметры метода должны состоять из массива, максимального размера массива и количества вращений, которое требуется пользователю)

  • Внутри метода рассмотрим новый массив с именем переменной «temp», чтобы сохранить элементы массива после вращения.

  • С помощью переменной «i» и цикла переберите элементы (до индекса, который равен количеству вращений) массива и добавьте элементы один за другим в массив «temp».

  • Рассмотрим другой цикл, перебираем элементы из следующего индекса и сохраняем их соответствующим образом.

  • Теперь объедините массив «arr» с массивом «temp» и сохраните значение в массиве «arr».

def rotate_elements(arr, max, no_of_elements):
   temp = []
   i = 0
   while (i < no_of_elements):
      temp.append(arr[i])
      i += 1

   i = 0
   while (no_of_elements < max):
      arr[i] = arr[no_of_elements]
      i = i + 1
      no_of_elements = no_of_elements + 1

   arr[:] = arr[: i] + temp
   return arr
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print("The array before rotation is: ", end =' ')
print(arr)
print("The array after rotation is: ", end=' ')
max_size = len(arr)

print(rotate_elements(arr, max_size, 2))

Выход

Вывод для вышеуказанной программы следующий:

The array before rotation is:  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
The array after rotation is:  [3, 4, 5, 6, 7, 8, 9, 10, 1, 2]

Пример

В этом примере мы собираемся обсудить процесс вращения определенных элементов (один за другим) массива на определенное количество оборотов. Шаги, которые необходимо выполнить для создания программы, следующие:

  • Объявите две функции. Первая функция будет использоваться для перебора всех элементов до достижения общего количества вращений и одновременно с этим вызывает второй метод, так что после итерации элемента ему будет разрешено немедленное вращение.

  • (Обратите внимание, что параметры метода должны состоять из массива, максимального размера массива и количества вращений, которое требуется пользователю)

  • Во втором методе рассмотрим пустой массив с именем переменной «temp», чтобы сохранить элементы массива после вращения.

  • С помощью переменной «i» и цикла перебираем все элементы от индекса 0 до последнего индекса последнего элемента и поворачиваем элементы массива один за другим.

  • Выведите элементы, присутствующие в массиве «arr», после вращения.

def rotate_elements(arr, no_of_elements, max):
   for i in range(no_of_elements):
      rotate_one_by_one(arr, max)
def rotate_one_by_one(arr, max):
   temp = arr[0]
   for i in range(max-1):
      arr[i] = arr[i+1]
   arr[max-1] = temp

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print("The array before rotation: ")
print(arr)

rotate_elements(arr, 2, 10)
print("The array after rotation: ")
print(arr)

Выход

Вывод для вышеуказанной программы следующий:

The array before rotation: 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
The array after rotation:
[3, 4, 5, 6, 7, 8, 9, 10, 1, 2]

Заключение

Мы можем ясно видеть, что результаты обеих обсуждавшихся выше программ абсолютно равны. Единственная разница между программами — это процесс, выполняемый в теле программы, и используемые методы. В первой программе в рамках одного метода происходит полный поворот элементов с помощью внешнего массива. Во второй программе используются два разных метода для поворота элементов один за другим путем вызова метода. Таким образом элементы массивов можно вращать.

Статьи по данной тематике: