Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python สำหรับหมุนอาร์เรย์ไปทางซ้าย (Left Rotate)

การหมุนอาร์เรย์ไปทางซ้าย (Left Rotation) หมายถึงการเลื่อนสมาชิกแต่ละตัวไปทางซ้าย และนำสมาชิกตัวแรกไปวางไว้ท้ายสุด ทำซ้ำตามจำนวนครั้งที่กำหนด

ตัวอย่างโค้ด

my_list = [11, 12, 23, 34, 65]
n = 3
print("The list is : ")
for i in range(0, len(my_list)):
    print(my_list[i])
for i in range(0, n):
    first_elem = my_list[0]
    for j in range(0, len(my_list)-1):
        my_list[j] = my_list[j+1]
    my_list[len(my_list)-1] = first_elem
print()
print("Array after left rotating is : ")
for i in range(0, len(my_list)):
    print(my_list[i])

ผลลัพธ์

The list is : 11 12 23 34 65
Array after left rotating is : 34 65 11 12 23

คำอธิบาย

  • กำหนดลิสต์และจำนวนครั้งที่ต้องการหมุน (n = 3)

  • วนลูป n ครั้ง: ในแต่ละรอบ เก็บค่าสมาชิกแรกไว้ แล้วเลื่อนสมาชิกอื่นๆ ไปทางซ้ายทีละตำแหน่ง

  • นำค่าที่เก็บไว้ (สมาชิกแรกเดิม) ไปวางที่ตำแหน่งสุดท้าย

วิธีที่มีประสิทธิภาพมากกว่า: ใช้ slicing ดังนี้ my_list = my_list[n:] + my_list[:n] ซึ่งทำงานได้ใน O(n) และเข้าใจง่ายกว่า