แนวคิดการสร้างต้นไม้เส้นตรงเวลาเชิงเส้นอย่างง่าย


13

ในปี 1973 Weiner ได้สร้างต้นไม้ต่อท้ายขึ้นเป็นครั้งแรก อัลกอริทึมนั้นง่ายในปี 1976 โดย McCreight และในปี 1995 โดย Ukkonen อย่างไรก็ตามฉันพบว่าอัลกอริทึมของ Ukkonen ค่อนข้างเกี่ยวข้องกับแนวคิด

มีการทำให้อัลกอริทึมของ Ukkonen ง่ายขึ้นตั้งแต่ปี 1995 หรือไม่?


4
Farach และ el 1998 ฉันคิดว่านี่เป็นสถานที่ที่เหมาะสำหรับการเริ่มอ่าน: scholar.google.co.uk/…
Radu GRIGore

คำตอบ:


9

ฉันไม่แน่ใจว่ามีผลลัพธ์ใหม่ใด ๆ ที่ทำให้การสร้างต้นต่อท้ายนั้นง่ายขึ้นหรือไม่ อย่างไรก็ตามมีอย่างน้อยหนึ่งผลลัพธ์ที่ให้อัลกอริธึมที่ง่ายมากสำหรับการสร้างอาร์เรย์คำต่อท้ายในเวลาเชิงเส้น

โปรดทราบว่ามีมากกว่าความเท่าเทียมกันทางแนวคิดระหว่างโครงสร้างข้อมูลทั้งสองเนื่องจากคุณสามารถใช้อาร์เรย์ต่อท้าย (ด้วยเวลาสำหรับการค้นหาคำนำหน้าทั่วไปที่ยาวที่สุด) เพื่อสร้างแผนภูมิต่อท้ายที่เทียบเท่ากัน นี่ควรเป็นการออกกำลังกายที่ค่อนข้างเรียบง่าย แต่ฉันสามารถให้รายละเอียดเพิ่มเติมหากจำเป็นO(1)

O(nlgn)


1
คุณสามารถให้ตัวชี้กับวิธีที่ง่ายกว่าในการสร้างอาร์เรย์ต่อท้ายในเวลา O (N lg N) หรือไม่?
Randomblue

1
ติดป้ายกำกับคำต่อท้ายทั้งหมดที่มีความยาว 2 ^ k ด้วยจำนวนเต็มเช่นป้ายกำกับที่สอดคล้องกับลำดับความสัมพันธ์ระหว่างคำต่อท้าย ขั้นตอนแรก (k = 0) ชัดเจน ในการคำนวณเลเบลที่ขั้นตอน k ใช้เลเบลจากขั้นตอน k-1 และทำการเรียงลำดับ radix บทความนี้ควรเข้าใจง่าย: webglimpse.net/pubs/suffix.pdf
zotachidil

7

นอกจากสิ่งที่ถูกกล่าวถึง ( Kärkkäinenและแซนเดอ 2003 ) ผมคิดว่าคุณจะขอบคุณรุ่น "ใหม่" โดยKärkkäinenแซนเดอริค์และ 2006 อัลกอริทึมโดยทั่วไปตามโครงสร้างของอัลกอริทึมของ Farach มันเป็นแนวคิดที่ง่ายกว่าในเนื้อหา แต่โบนัสที่แท้จริงคือพวกเขาให้ผู้อ่านมีการใช้อัลกอริทึม มันมีเพียงประมาณ 50 บรรทัดของ C ++ ดังนั้นจึงไม่มีรายละเอียดที่ซ่อนอยู่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.