เมนูนำทาง
การหมุนแถวลำดับ Codeตัวอย่างการเขียนโปรแกรมด้วย ภาษาไพทอน (Python)
def ArrayRotation(array, count): len_array = len(array) swap(array, 0, count-1) swap(array, count, len_array-1) swap(array, 0, len_array - 1) return arraydef swap( array, start, end ): while start < end: temp = array[start] array[start] = array[end] array[end] = temp start += 1 end -= 1
เนื่องจากการนำฟังก์ชันไปทำการวนลูป 3 รอบ ทำให้ได้สมการเป็น
O(n) * O(n) * O(n) = O(n^3)
ซึ่งทำให้ Big O ของ Code นี้เป็น O(n^3)
เป็นกรณีที่ดีที่สุดในการทำงาน คือ มีข้อมูลของ array เพียงแค่ 1 ข้อมูลหรือไม่มีเลยจะทำให้ไม่มีการเปรียบเทียบค่าเพื่อหมุนสลับและไม่ต้องทำงานมากทำการทำงานมีความรวดเร็ว จะได้ Big O นี้เป็น O(1)
เป็นกรณีที่แย่ที่สุดในการทำงาน คือ มีข้อมูลของ array มีจำนวนมากทำให้ต้องทำงานหลายครั้งและเข้าทุกฟังก์ชันเพื่อทำกาหมุนสลับข้อมูลจำนวนเยอะทำให้การทำงานเกิดความล่าช้าจึงทำให้ได้ Big O นี้เป็น O(n)
เมนูนำทาง
การหมุนแถวลำดับ Codeใกล้เคียง
การหมักเชิงอุตสาหกรรม การหมิ่นประมาท (กฎหมายไทย) การหมักดอง การหมุนแถวลำดับ การหมุนเชิงแสง การหมัก (ชีวเคมี) การหมุน (สเกตลีลา) การหมุนควงลาร์เมอร์ การหมุนรอบตัวเอง การหมักเนื้อแหล่งที่มา
WikiPedia: การหมุนแถวลำดับ https://www.geeksforgeeks.org/?p=2838