BSP樹作為多維搜尋結構
空間搜尋結構基於計算機科學在60年代和70年代為快速處理大型符號資料(而不是幾何資料,例如人員姓名列表)而發明的一些相同思想。它首先根據字母表對姓名列表進行排序,並將排序後的列表儲存在陣列中,然後可以使用二分查詢演算法在log2n次操作中計算某個新名稱是否已在列表中,而不是順序查詢所需的n/2次預期操作。這是一個很好的例子,它提取了姓名列表中存在的結構(字母順序),並在後續操作(查詢姓名)中利用該結構來減少計算。
但是,如果希望在保持排序列表的同時允許新增和刪除名稱,則需要動態資料結構,即實現指標的結構。這種資料結構中最常見的例子之一就是二叉搜尋樹。
在二叉搜尋樹的情況下,它被用來表示一組整數,例如A = {1, 2, 5, 6, 7, 9}位於實線上。為了計算某個數字/點是否已在樹中,可以將該點插入到樹中,並遵循與包含該點的巢狀區間序列對應的路徑。對於平衡樹,此過程最多消耗O(log n)步;實際上,我們已經執行了二分查詢,但是它實現的是樹而不是陣列。現在,樹本身能夠編碼搜尋演算法的一部分,因為它決定了搜尋前進的順序。
這現在將我們帶回到劃分樹,它們被視為二叉搜尋樹到大於1維(即多維)的泛化(在一維中,它們本質上是相同的)。事實上,構建劃分樹可以想象成快速排序的幾何版本。
更改(刪除和插入)是透過合併樹來實現的,類似於在歸併排序中合併排序列表。
但是,由於點不會劃分任何大於1維的空間,我們必須實現超平面而不是點來進行細分。
無論維度如何,超平面總是將區域細分為兩個半空間。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP