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]
结论
我们可以清楚地观察到,上面讨论的两个程序生成的输出完全相同。程序之间的唯一区别是程序体中遵循的过程和使用的方法。在第一个程序中,在一个方法内,使用外部数组将元素整体旋转。在第二个程序中,使用两个不同的方法来通过调用方法逐个旋转元素。这样,就可以旋转数组的元素。