3
อัลกอริธึมแบบแทนที่สำหรับการแทรกอาร์เรย์
คุณได้รับองค์ประกอบมากมาย2n2n2n a1,a2,…,an,b1,b2,…bna1,a2,…,an,b1,b2,…bna_1, a_2, \dots, a_n, b_1, b_2, \dots b_n ภารกิจคือการสอดแทรกอาร์เรย์โดยใช้อัลกอริทึมแบบแทนที่ที่อาร์เรย์ผลลัพธ์จะมีลักษณะดังนี้ b1,a1,b2,a2,…,bn,anb1,a1,b2,a2,…,bn,anb_1, a_1, b_2, a_2, \dots , b_n, a_n หากความต้องการในสถานที่ไม่มีเราสามารถสร้างอาร์เรย์และองค์ประกอบการคัดลอกใหม่ที่ให้อัลกอริทึมเวลาO(n)O(n)\mathcal{O}(n) ด้วยความต้องการในสถานที่แบ่งและพิชิตอัลกอริทึมกระแทกขึ้นขั้นตอนวิธีการที่จะเป็นlog)θ(nlogn)θ(nlogn)\theta(n \log n) ดังนั้นคำถามคือ: มีอัลกอริธึมเวลาซึ่งอยู่ในสถานที่ด้วยหรือไม่?O(n)O(n)\mathcal{O}(n) (หมายเหตุ: คุณสามารถสันนิษฐานได้ว่ารูปแบบ WORD RAM ราคาเท่ากันดังนั้นจึงแปลเป็นจำกัด พื้นที่)O(1)O(1)\mathcal{O}(1)