เมนูนำทาง
การหมุนแถวลำดับ การทำงานกำหนดให้
start คือ ตำแหน่งเริ่มต้นของค่าการหมุน
end คือ ตำแหน่งที่จบของค่าการหมุน
len_array คือ จำนวนความยาวของ array
array คือ ข้อมูลที่ต้องการนำมาหมุน
count คือ ค่าตำแหน่งที่เลือกเพื่อทำการหมุน
temp คือ ตัวว่างเปล่าที่เอาไว้สลับที่ข้อมูล
ให้ array = [1, 2, 3, 4, 5]
len_array = 5
count = 3
เริ่มจากการเข้าฟังก์ชันแรกในการหมุน swap(array, 0, count-1)
start = 0
end = 2
while 0 < 2 : temp = array[0] array[0] = array[2] array[2] = temp start += 1 end -= 1
การสลับจะเป็น
[1, 2, 3, 4, 5]
[3, 2, 1, 4, 5]
start = 1
end = 1
start = end ทำให้ออกจากลูป
ทำให้ array = [3, 2, 1, 4, 5]
len_array = 5
count = 3
เริ่มจากการเข้าฟังก์ชันที่สองในการหมุน swap(array, count, len_array-1)
start = 3
end = 4
while 3 < 4 : temp = array[3] array[3] = array[4] array[4] = temp start += 1 end -= 1
การสลับจะเป็น
[3, 2, 1, 4, 5]
[3, 2, 1, 5, 4]
start = 4
end = 3
start > end ทำให้ออกจากลูป
ทำให้ array = [3, 2, 1, 5, 4]
len_array = 5
count = 3
เริ่มจากการเข้าฟังก์ชันสุดท้ายในการหมุน swap(array, 0, len_array - 1)
start = 0
end = 4
while 0 < 4 : temp = array[0] array[0] = array[4] array[4] = temp start += 1 end -= 1
การสลับจะเป็น
[3, 2, 1, 5, 4]
[4, 2, 1, 5, 3]
start = 1
end = 3
start < end ทำให้เข้าลูปต่อไปได้
ทำให้ array = [4, 2, 1, 5, 3]
len_array = 5
count = 3
เริ่มจากการเข้าฟังก์ชันแรกในการหมุน swap(array, 0, len_array - 1)
start = 1
end = 3
while 1 < 4 : temp = array[1] array[1] = array[3] array[3] = temp start += 1 end -= 1
การสลับจะเป็น
[4, 2, 1, 5, 3]
[4, 5, 1, 2, 3]
start = 2
end = 2
start = end ทำให้ออกจากลูป
เข้าหมดทุกฟังก์ชันแล้ว จะได้ข้อมูลสุดท้ายที่หมุนออกมา return array => [4, 5, 1, 2, 3]
เมนูนำทาง
การหมุนแถวลำดับ การทำงานใกล้เคียง
การหมักเชิงอุตสาหกรรม การหมิ่นประมาท (กฎหมายไทย) การหมักดอง การหมุนแถวลำดับ การหมุนเชิงแสง การหมัก (ชีวเคมี) การหมุน (สเกตลีลา) การหมุนควงลาร์เมอร์ การหมุนรอบตัวเอง การหมักเนื้อแหล่งที่มา
WikiPedia: การหมุนแถวลำดับ https://www.geeksforgeeks.org/?p=2838