การทำงาน ของ การหมุนแถวลำดับ

กำหนดให้

start  คือ ตำแหน่งเริ่มต้นของค่าการหมุน

end   คือ ตำแหน่งที่จบของค่าการหมุน

len_array   คือ จำนวนความยาวของ array

array    คือ ข้อมูลที่ต้องการนำมาหมุน

count  คือ ค่าตำแหน่งที่เลือกเพื่อทำการหมุน

temp  คือ ตัวว่างเปล่าที่เอาไว้สลับที่ข้อมูล

ตัวอย่างการทำงาน

ครั้งที่ 1

ให้ array = [1, 2, 3, 4, 5]

len_array = 5

count = 3

เริ่มจากการเข้าฟังก์ชันแรกในการหมุน swap(array, 0, count-1)

start = 0

end = 2

Round 1 :
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 ทำให้ออกจากลูป

ครั้งที่ 2

Round 1 :

ทำให้ 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 ทำให้ออกจากลูป

ครั้งที่ 3

Round 1 :

ทำให้ 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 ทำให้เข้าลูปต่อไปได้

Round 2 :

ทำให้ 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]

ใกล้เคียง

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