Javatpoint标志
Javatpoint标志

Python中数组旋转的不同方法

在本教程中,我们将学习如何使用Python程序旋转数组。我们将编写一个用于旋转(array [], E, K)的函数,该函数将用于将大小为K = 8的array[]旋转E = 4个元素。

Python中数组旋转的不同方法

将数组旋转4个元素后,我们将得到如下数组:

Python中数组旋转的不同方法

数组旋转的方法:

在这一节中,我们将讨论用户可以根据他们的需求使用不同的方法来旋转数组。

方法1:使用temp数组

在这种方法中,我们将使用以下方法:

步骤1:我们将“E”元素存储在一个临时数组中

Temp[] = [1,3,5,7]

步骤2:我们会把剩下的人[]

[] = [9,11,13,15]

步骤3:我们将存储“E”元素

[] = [9,11,13,15,1,3,5,7]

例子:

输出:

旋转4个元素后的数组为:[9,11,13,15,1,3,5,7]

在上述方法中:

方法二:逐个旋转元素

在这种方法中,我们将使用以下方法:

rotate_array1(array [], E, K)

  • 我们将设置for条件,如果J等于0并且小于E,那么rotate_array1函数将把所有元素旋转1

我们必须在临时变量“temp_1”中存储array[0],用于将元素旋转1次。然后我们将把更多的array[1]变为array[0],将更多的array[2]变为array[1],以此类推。最后,我们将得到数组[n-1]上的temp_1。

例子:

输出:

旋转后的数组:13 5 7 9 11 13 15

在上述方法中:

方法三:使用杂耍算法

在这种方法中,我们将把数组分成不同的集合,而不是一个一个地移动元素。

当集合的数量等于“K”和“E”的最大公约数时,代码将把元素建模到集合中。

如果最大公约数等于1,则元素将只移动到一个集合中。这里,我们将从temp_1 = harry[0]开始,它将继续将harry [J + E]移动到harry [J],最后,它将把temp_1存储在正确的位置。

让我们看一个例子,K = 16, E = 4。最大公约数(G_C_D) = 4

步骤,

  • 首先,元素将被移动到第一个集合中,如下图所示:
    Python中数组旋转的不同方法

此集合完成后,ry[]将等于[15, 12, 13, 14,19日,16,17,18,23[20、21、22、11、23、24、25、26]

  • 那么在第二组中,ry将是[15],16, 13, 14, 19,20., 17,18,23,24, 21, 22, 11,12[24,25,26]
  • 在第三组中,ry将是[15,16,17, 14,19,20,21, 18, 23, 24,25, 11, 12,13, 26岁)
  • 最后,在第四组中:array将是[15,16,17,18,19,20,21,22,23,24,25,26,11,12,13,14]

例子:

输出:

旋转后的数组:[15,16,17,18,19,20,21,22,23,24,25,26,11,12,13,14]

在上述方法中:

方法4:使用列表切片

在这个方法中,我们将使用列表切片来旋转数组的元素。

例子:

输出:

列表为:[11,12,13,14,15,16,17,18],旋转列表为:[15,16,17,18,11,12,13,14]

如果我们想要旋转数组超过它的长度,我们可以使用mod方法。

假设我们要以“E”为单位旋转的数组大小为“K”,并且“E”大于“K”。在这种情况下,我们必须计算(E%K),然后我们可以通过mod计算后的输出来旋转。

结论

在本文中,我们讨论了如何使用Python使用不同的方法来旋转给定的数组。







Youtube 视频加入我们的Youtube频道:现在加入

反馈


帮助别人,请分享

脸谱网 推特 pinterest

学习最新教程


准备


热门的技术


b .技术/马华






Baidu
map