{"title":"半动态点集的K-d树","authors":"J. Bentley","doi":"10.1145/98524.98564","DOIUrl":null,"url":null,"abstract":"A <italic>K</italic>-d tree represents a set of <italic>N</italic> points in <italic>K</italic>-dimensional space. Operations on a <italic>semidynamic</italic> tree may delete and undelete points, but may not insert new points. This paper shows that several operations that require <italic>&Ogr;</italic>(log <italic>N</italic>) expected time in general <italic>K</italic>-d trees may be performed in constant expected time in semidynamic trees. These operations include deletion, undeletion, nearest neighbor searching, and fixed-radius near neighbor searching (the running times of the first two are proved, while the last two are supported by experiments and heuristic arguments). Other new techniques can also be applied to general <italic>K</italic>-d trees: simple sampling reduces the time to build a tree from <italic>&Ogr;</italic>(<italic>KN</italic> log <italic>N</italic>) to <italic>&Ogr;</italic>(<italic>KN</italic> + <italic>N</italic> log <italic>N</italic>), and more advanced sampling builds a robust tree in the same time. The methods are straightforward to implement, and lead to a data structure that is significantly faster and less vulnerable to pathological inputs than ordinary <italic>K</italic>-d trees.","PeriodicalId":113850,"journal":{"name":"SCG '90","volume":"66 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1990-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"408","resultStr":"{\"title\":\"K-d trees for semidynamic point sets\",\"authors\":\"J. Bentley\",\"doi\":\"10.1145/98524.98564\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"A <italic>K</italic>-d tree represents a set of <italic>N</italic> points in <italic>K</italic>-dimensional space. Operations on a <italic>semidynamic</italic> tree may delete and undelete points, but may not insert new points. This paper shows that several operations that require <italic>&Ogr;</italic>(log <italic>N</italic>) expected time in general <italic>K</italic>-d trees may be performed in constant expected time in semidynamic trees. These operations include deletion, undeletion, nearest neighbor searching, and fixed-radius near neighbor searching (the running times of the first two are proved, while the last two are supported by experiments and heuristic arguments). Other new techniques can also be applied to general <italic>K</italic>-d trees: simple sampling reduces the time to build a tree from <italic>&Ogr;</italic>(<italic>KN</italic> log <italic>N</italic>) to <italic>&Ogr;</italic>(<italic>KN</italic> + <italic>N</italic> log <italic>N</italic>), and more advanced sampling builds a robust tree in the same time. The methods are straightforward to implement, and lead to a data structure that is significantly faster and less vulnerable to pathological inputs than ordinary <italic>K</italic>-d trees.\",\"PeriodicalId\":113850,\"journal\":{\"name\":\"SCG '90\",\"volume\":\"66 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1990-05-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"408\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"SCG '90\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/98524.98564\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"SCG '90","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/98524.98564","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 408
摘要
K-d树表示k维空间中N个点的集合。对半动态树的操作可以删除和取消删除点,但不能插入新的点。本文证明了一些在一般K-d树中需要&Ogr;(log N)期望时间的操作,在半动态树中可以在常数期望时间内完成。这些操作包括删除、取消删除、最近邻搜索和固定半径近邻搜索(前两种操作的运行时间得到了证明,后两种操作的运行时间得到了实验和启发式论证的支持)。其他新技术也可以应用于一般的K-d树:简单采样将构建树的时间从&Ogr;(KN log N)减少到&Ogr;(KN + N log N),更高级的采样在相同的时间内构建了一个鲁棒树。这些方法很容易实现,并且产生的数据结构比普通的K-d树更快,更不容易受到病态输入的影响。
A K-d tree represents a set of N points in K-dimensional space. Operations on a semidynamic tree may delete and undelete points, but may not insert new points. This paper shows that several operations that require &Ogr;(log N) expected time in general K-d trees may be performed in constant expected time in semidynamic trees. These operations include deletion, undeletion, nearest neighbor searching, and fixed-radius near neighbor searching (the running times of the first two are proved, while the last two are supported by experiments and heuristic arguments). Other new techniques can also be applied to general K-d trees: simple sampling reduces the time to build a tree from &Ogr;(KN log N) to &Ogr;(KN + N log N), and more advanced sampling builds a robust tree in the same time. The methods are straightforward to implement, and lead to a data structure that is significantly faster and less vulnerable to pathological inputs than ordinary K-d trees.