阵列旋转反转算法的Python程序

编写一个函数rotate(arr[],d,n),将大小为n的arr[]旋转d个元素。

null

例子:

Input :  arr[] = [1, 2, 3, 4, 5, 6, 7]
         d = 2
Output : arr[] = [3, 4, 5, 6, 7, 1, 2] 

Array

将上述阵列旋转2将生成阵列

ArrayRotation1

建议:请在“上解决” 实践 “首先,在讨论解决方案之前。

# Python program for reversal algorithm of array rotation
# Function to reverse arr[] from index start to end
def rverseArray(arr, start, end):
while (start < end):
temp = arr[start]
arr[start] = arr[end]
arr[end] = temp
start + = 1
end = end - 1
# Function to left rotate arr[] of size n by d
def leftRotate(arr, d):
n = len (arr)
rverseArray(arr, 0 , d - 1 )
rverseArray(arr, d, n - 1 )
rverseArray(arr, 0 , n - 1 )
# Function to print an array
def printArray(arr):
for i in range ( 0 , len (arr)):
print (arr[i])
# Driver function to test above functions
arr = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 ]
leftRotate(arr, 2 ) # Rotate array by 2
printArray(arr)
# This code is contributed by Devesh Agrawal


输出:

3 4 5 6 7 1 2

时间复杂性: O(n)

请参阅完整的文章 阵列旋转的反转算法 更多细节!

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享