Python 程序以给定大小为分组来反转一个数组?
这里我们使用一个用户输入数组和一个组的大小。我们按照组的大小创建子数组并反转它。如果各组的大小(p)不是数组的大小(n)的倍数,那么最后一组中会剩下少于 k 个元素,并且反转所有剩余元素。如果 p=1,则数组保持不变;如果 p>=1,则反转数组中的所有元素。
算法
Revarray(A,n,p)
/* A is an integer Array, n is the size of an array and every sub-array of size p starting from the beginning of the array and reverse it.*/
Step 1: i is the loop control variable which is initialized by 0.
Step 2: using while loop check i is less than n or not. If true
Step 2.1: L=i /* Left sub array
Step 2.2: R=min (i+p-1, n-1) /*Right sub array
Step 2.3: Using while loop check L is than R or not. If yes
Step 2.3.1: swap left sub array A (L) and Right Sub Array A(R).
Step 2.3.2: L is incremented by 1.
Step 2.3.3: R is stepping backward one step at a time.
Step 2.4: End While
Step 2.5: i=i+p
Step 3: End While
Step 4: Stop
示例代码
#reverse of an array in groups of given size
def arrayreverse(A, n, p):
i = 0
while(i<n):
L = i
R = min(i + p - 1, n - 1)
while (L < R):
A[L], A[R] = A[R], A[L]
L+= 1;
R-+1
i+= p
# Driver code
#Insert data in an array
A=list()
n=int(input("Enter the size of the array ::"))
print("Enter the number ::")
for i in range(int(n)):
k=int(input(""))
A.append(int(k))
p=int(input("Enter the size of the group ::"))
arrayreverse(A, n, p)
for i in range(0, n):
print(A[i], end =" ")
输出
Enter the size of the array ::6 Enter the number :: 11 22 33 44 55 66 Enter the size of the group ::2 22 11 44 33 66 55
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
安卓
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP