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

จาก testwiki
ไปยังการนำทาง ไปยังการค้นหา

ในวิทยาการคอมพิวเตอร์ ต้นไม้เฟนวิก (แม่แบบ: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)

อ้างอิง

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

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