ต้นไม้เฟนวิก

จาก testwiki
รุ่นแก้ไขเมื่อ 14:21, 7 มีนาคม 2568 โดย imported>InternetArchiveBot (Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5)
(ต่าง) ←รุ่นแก้ไขก่อนหน้า | รุ่นแก้ไขล่าสุด (ต่าง) | รุ่นแก้ไขถัดไป→ (ต่าง)
ไปยังการนำทาง ไปยังการค้นหา

ในวิทยาการคอมพิวเตอร์ ต้นไม้เฟนวิก (แม่แบบ:Langx) หรืออาจเรียกว่า binary indexed tree เป็นโครงสร้างข้อมูลที่ใช้ในการคำนวณผลรวมนำหน้า (prefix sum) ของตารางข้อมูลได้อย่างมีประสิทธิภาพ โครงสร้างข้อมูลนี้คิดค้นโดย Peter Fenwick ใน พ.ศ. 2537[1]

การคำนวณผลรวมนำหน้าอย่างง่ายก็คือการสร้างตารางคำนวณผลลัพธ์ล่วงหน้า ซึ่งใช้เวลา O(n) ในการดำเนินการ และหลังจากนั้นก็สามารถหาผลลัพธ์จากตารางดังกล่าวได้ในเวลาเพียง O(1) อย่างไรก็ตาม หากหลังจากนั้นต้องการที่จะแก้ไขข้อมูลขึ้นมา ก็ต้องคำนวณข้อมูลทั้งตารางใหม่อีกรอบ กล่าวคือหากมีการแก้ข้อมูล q รอบ ก็จะทำให้ต้องเสียเวลา O(nq) ซึ่งเสียเวลาเป็นอย่างมาก ต้นไม้เฟนวิกเข้ามาช่วยลดเวลาในส่วนนี้โดยทำให้การแก้ไขข้อมูลแต่ละครั้งใช้เวลาเพียง O(logn) ทำให้การแก้ข้อมูล q รอบ ใช้เวลาเพียง O(qlogn) แต่ก็แลกมากับเวลาในการหาผลลัพธ์ซึ่งเพิ่มขึ้นจาก O(1) มาเป็น O(logn)

อ้างอิง

แม่แบบ:รายการอ้างอิง

แหล่งข้อมูลอื่น