Trong hướng dẫn này, chúng ta sẽ học cách viết một hàm cho Xoay mảng. Người dùng sẽ cung cấp một đầu vào d mà theo đó các phần tử của mảng sẽ được xoay
Mảng Python là cấu trúc dữ liệu lưu trữ dữ liệu đồng nhất. Mảng lưu trữ các đối tượng có cùng kiểu dữ liệu. Mảng có thể thay đổi, nghĩa là dữ liệu trong một mảng có thể được thay đổi và lặp đi lặp lại, nghĩa là mỗi phần tử trong một mảng có thể được truy cập từng phần tử một
Giả sử một mảng a[ ] có các phần tử sau,
Nó phải được xoay 2 thì mảng kết quả sẽ là,
Chương trình của chúng tôi sẽ cung cấp đầu ra như sau
Đầu vào-[1, 2, 3, 4, 5, 6]
Mảng xoay đầu ra là [3, 4, 5, 6, 1, 2]
Để thực hiện nhiệm vụ này, chúng tôi sẽ làm theo các phương pháp sau
- Sử dụng một mảng tạm thời sẽ lưu trữ các phần tử đã dịch chuyển
- Cắt mảng
Cách tiếp cận 1. Bằng cách sử dụng một mảng tạm thời
Trong phương pháp này, chúng tôi sẽ khai báo một mảng tạm thời sẽ lưu trữ các phần tử mảng theo thứ tự thay đổi
Input arr[] = [1, 2, 3, 4, 5, 6, 7], d = 2, n =7 1] Store all the elements in the index range d to n in a temp array temp[] = [3, 4, 5, 6, 7] 2] Add all the elements in the index range 0 to d in the temp array arr[] = [3, 4, 5, 6, 7, 1, 2] 3] Copy the temp array to arr[] arr[] = [3, 4, 5, 6, 7, 1, 2]
thuật toán
Bước 1- Định nghĩa hàm xoay mảng
Bước 2- Khai báo biến tạm thời
Bước 3- Sử dụng len[] để tính độ dài của mảng và lưu nó vào một biến
Bước 4- Chạy một vòng lặp từ d đến n và lưu trữ các phần tử tại mỗi chỉ mục trong mảng tạm thời
Bước 5- Chạy một vòng lặp khác để thêm các phần tử còn lại vào mảng tạm thời
Bước 6- Sao chép mảng tạm thời sang mảng ban đầu
Bước 7- Trả về mảng
Chương trình Python 1
Nhìn vào chương trình để hiểu việc thực hiện phương pháp nêu trên
def rotateArray[a,d]:
temp = []
n=len[a]
for i in range[d,n]:
temp.append[a[i]]
i = 0
for i in range [0,d]:
temp.append[a[i]]
a=temp.copy[]
return a
arr = [1, 2, 3, 4, 5, 6, 7]
print["Array after left rotation is: ", end=' ']
print[rotateArray[arr, 2]]
Mảng sau khi xoay trái là. [3, 4, 5, 6, 7, 1, 2]
Cách tiếp cận 2. cắt lát
Trong cách tiếp cận này, chúng ta sẽ sử dụng khái niệm cắt lát. Vì mảng là một kiểu danh sách với các phần tử cùng kiểu dữ liệu nên chúng ta có thể sử dụng khái niệm cắt danh sách ở đây. Thông qua việc cắt, chúng ta có thể truy cập bất kỳ phần nào của mảng
thuật toán
Bước 1- Định nghĩa hàm xoay phần tử trong danh sách mảng
Bước 2- Xác định độ dài của một mảng bằng len[]
Bước 3- Sử dụng toán tử nối [. ] để lưu trữ các phần tử từ d đến n và 0 đến d
Bước 4- Sử dụng dấu [+] để nối cả hai mảng
Bước 5- Trả về mảng
Chương trình Python 2
Nhìn vào chương trình để hiểu việc thực hiện phương pháp nêu trên
# List slicing approch to rotate the array
def rotateArray[a,d]:
n=len[a]
a[:]=a[d:n]+a[0:d]
return a
arr = [1, 2, 3, 4, 5, 6]
print["Rotated list is"]
print[rotateArray[arr,2]]
Danh sách đã xoay là
[3, 4, 5, 6, 1, 2]
Phần kết luận
Trong hướng dẫn này, chúng ta đã học được hai cách tiếp cận mà chúng ta có thể thực hiện để xoay các phần tử trong một mảng. Chúng tôi đã sử dụng khái niệm cắt lát trong hướng dẫn của mình. Chúng ta cũng có thể khai báo một mảng tạm thời sẽ lưu trữ các phần tử theo thứ tự đã dịch chuyển. Để thêm dữ liệu vào mảng tạm thời, chúng tôi đã sử dụng append[] và để sao chép mảng tạm thời vào mảng ban đầu, chúng tôi đã sử dụng copy[] trong chương trình của mình
thuật toán
Bước 1- Khởi tạo một lớp
Bước 2- Nhập số phần tử của mảng
Bước 3- Nhập số góc quay của mảng
Bước 4- Nhập số lượng chỉ mục sẽ được hiển thị
Bước 5- Nhập các phần tử mảng
Bước 6- chạy vòng lặp for, i=0;
Bước 7- sau đó mô-đun các phép quay của bạn với các phần tử
Bước 8- Nhập chỉ số mảng cần hiển thị
Bước 9- in số lượng chỉ mục và phép quay
Cảm ơn @micropentium6, giải pháp C++ ban đầu rất tệ và tệ. Vui lòng tham khảo giải pháp từ @micropentium6. Ngoài ra, bạn có thể tìm thấy một giải pháp Python khác có cùng phương pháp như của @micropentium6 trong một bài đăng cũ hơn
Trong hướng dẫn này, bạn sẽ học cách xoay mảng theo chu kỳ từng mảng một trong Python. Mảng là tập hợp đồng nhất của các phần tử. Do tầm quan trọng và công dụng to lớn của nó, mảng là cấu trúc dữ liệu nổi tiếng nhất trong ngôn ngữ lập trình. Các lập trình viên sử dụng mảng trong các lĩnh vực khác nhau vì chức năng của chúng. Vì vậy, tất cả những điều này tạo ra nhu cầu cho một lập trình viên tìm hiểu về mảng. Không chỉ học để trở thành một lập trình viên giỏi, người ta còn có thể chơi với mảng và sẵn sàng thực hiện bất kỳ nhiệm vụ nào yêu cầu mảng
Bây giờ ở đây nhiệm vụ của chúng ta là xoay từng mảng một theo chu kỳ. Là một trong những thao tác cơ bản trên mảng nhưng nhiều trường hợp nó lại mờ ám. Vì vậy, học cách làm điều đó làm cho nhiệm vụ của chúng ta trở nên dễ dàng. Bạn có thể xem xét ví dụ dưới đây để biết những gì chúng ta sẽ làm
Input: array[] = {1, 2, 3}/before rotation Output: array[] = {3, 1, 2}/after rotation
Các bước để xoay một mảng theo chu kỳ trong Python
Đối với phép quay theo chu kỳ, phần tử cuối cùng của mảng sẽ về chỉ số 0, dịch chuyển mọi phần tử sang phải một chỉ số [i. e phần tử tại chỉ mục đầu tiên sẽ được di chuyển chỉ mục thứ hai]