The original description of the k-d tree recognized that rebalancing techniques, such as used to build an AVL tree or a red-black tree, are not applicable to a k-d tree. Hence, in order to build a balanced k-d tree, it is necessary to find the median of a set of data for each recursive subdivision of that set. The sort or selection used to find the median, and the technique used to partition the set about that median, strongly influence the computational complexity of building a k-d tree. This article describes and contrasts three k-d tree-building algorithms that differ in their technique used to partition the set, and compares the performance of the algorithms. In addition, dual-threaded execution is proposed for one of the three algorithms.
- āĻĒā§āĻĒāĻžāϰ āĻāĻāĻĄāĻŋ: 2506.20687
- āĻļāĻŋāϰā§āύāĻžāĻŽ: Review of Three Algorithms That Build k-d Trees
- āϞā§āĻāĻ: Russell A. Brown
- āĻļā§āϰā§āĻŖā§āĻŦāĻŋāĻāĻžāĻ: cs.DS (āĻĄā§āĻāĻž āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻāĻŦāĻ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ)
- āĻĒā§āϰāĻāĻžāĻļāύāĻžāϰ āϏāĻŽāϝāĻŧ: ⧍ā§Ļ⧍ā§Ģ āϏāĻžāϞā§āϰ āĻ
āĻā§āĻā§āĻŦāϰ ā§§ā§Š āϤāĻžāϰāĻŋāĻ (arXiv v10)
- āĻĒā§āĻĒāĻžāϰ āϞāĻŋāĻā§āĻ: https://arxiv.org/abs/2506.20687
k-d āĻāĻžāĻā§āϰ āĻŽā§āϞ āĻŦāϰā§āĻŖāύāĻž āϏā§āĻŦā§āĻāĻžāϰ āĻāϰā§āĻā§ āϝ⧠AVL āĻāĻžāĻ āĻŦāĻž āϞāĻžāϞ-āĻāĻžāϞ⧠āĻāĻžāĻ āϤā§āϰāĻŋāϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšā§āϤ āĻĒā§āύāĻāϏāύā§āϤā§āϞāύ āĻā§āĻļāϞāĻā§āϞāĻŋ k-d āĻāĻžāĻā§āϰ āĻāύā§āϝ āĻĒā§āϰāϝā§āĻā§āϝ āύāϝāĻŧāĨ¤ āĻ
āϤāĻāĻŦ, āϏā§āώāĻŽ k-d āĻāĻžāĻ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋāĻŽā§āϞāĻ āĻāĻĒāĻŦāĻŋāĻāĻžāĻāύā§āϰ āĻāύā§āϝ āĻĄā§āĻāĻžāϏā§āĻā§āϰ āĻŽāϧā§āϝāĻŽāĻž āĻā§āĻāĻā§ āĻĒā§āϤ⧠āĻšāĻŦā§āĨ¤ āĻŽāϧā§āϝāĻŽāĻž āĻā§āĻāĻā§ āĻĒā§āϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āϏāĻžāĻāĻžāύ⧠āĻŦāĻž āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āĻāĻŦāĻ āϏā§āĻ āĻŽāϧā§āϝāĻŽāĻžāϰ āĻāĻžāϰāĻĒāĻžāĻļā§ āϏā§āĻāĻāĻŋ āĻŦāĻŋāĻāĻžāĻāύ āĻāϰāĻžāϰ āĻā§āĻļāϞ, k-d āĻāĻžāĻ āϤā§āϰāĻŋāϰ āĻāĻŖāύāĻžāĻŽā§āϞāĻ āĻāĻāĻŋāϞāϤāĻžāĻā§ āĻĻā§āĻĸāĻŧāĻāĻžāĻŦā§ āĻĒā§āϰāĻāĻžāĻŦāĻŋāϤ āĻāϰā§āĨ¤ āĻāĻ āĻĒā§āĻĒāĻžāϰāĻāĻŋ āϤāĻŋāύāĻāĻŋ k-d āĻāĻžāĻ āύāĻŋāϰā§āĻŽāĻžāĻŖ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āĻŦāϰā§āĻŖāύāĻž āĻāĻŦāĻ āϤā§āϞāύāĻž āĻāϰā§, āϝāĻž āĻŦāĻŋāĻāĻžāĻāύ āĻā§āĻļāϞ⧠āĻĒā§āĻĨāĻ, āĻāĻŦāĻ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āϤā§āϞāύāĻž āĻāϰā§āĨ¤ āĻ
āϤāĻŋāϰāĻŋāĻā§āϤāĻāĻžāĻŦā§, āĻāϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻāύā§āϝ āĻĻā§āĻŦāĻŋ-āĻĨā§āϰā§āĻĄā§āĻĄ āϏāĻŽā§āĻĒāĻžāĻĻāύ āϏā§āĻāĻŋāĻŽ āĻĒā§āϰāϏā§āϤāĻžāĻŦ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤
- āĻŽā§āϞ āϏāĻŽāϏā§āϝāĻž: k-d āĻāĻžāĻ āĻāϤāĻŋāĻšā§āϝāĻŦāĻžāĻšā§ āϏā§āĻŦ-āϏāύā§āϤā§āϞāĻŋāϤ āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻāĻžāĻ āĻā§āĻļāϞ (āϝā§āĻŽāύ AVL āĻāĻžāĻ āĻŦāĻž āϞāĻžāϞ-āĻāĻžāϞ⧠āĻāĻžāĻā§āϰ āĻā§āϰā§āĻŖāύ āĻ
āĻĒāĻžāϰā§āĻļāύ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏāύā§āϤā§āϞāύ āĻŦāĻāĻžāϝāĻŧ āϰāĻžāĻāϤ⧠āĻĒāĻžāϰ⧠āύāĻž, āϤāĻžāĻ āĻŽāϧā§āϝāĻŽāĻž āĻā§āĻāĻā§ āĻĒā§āϝāĻŧā§ āĻĄā§āĻāĻžāϏā§āĻāĻā§ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋāĻŽā§āϞāĻāĻāĻžāĻŦā§ āĻŦāĻŋāĻāĻžāĻāύ āĻāϰ⧠āϏā§āώāĻŽ k-d āĻāĻžāĻ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
- āĻā§āϰā§āϤā§āĻŦ: k-d āĻāĻžāĻ āĻŦāĻšā§āĻŽāĻžāϤā§āϰāĻŋāĻ āϏā§āĻĨāĻžāύ āĻĄā§āĻāĻž āĻāĻžāĻ āĻžāĻŽā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āϏāϰāĻā§āĻāĻžāĻŽ, āϝāĻž āύāĻŋāĻāĻāϤāĻŽ āĻĒā§āϰāϤāĻŋāĻŦā§āĻļā§ āĻ
āύā§āϏāύā§āϧāĻžāύ, āĻĒāϰāĻŋāϏā§āĻŽāĻž āĻĒā§āϰāĻļā§āύ āĻāϤā§āϝāĻžāĻĻāĻŋ āĻā§āώā§āϤā§āϰ⧠āĻŦā§āϝāĻžāĻĒāĻāĻāĻžāĻŦā§ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āύāĻŋāϰā§āĻŽāĻžāĻŖ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻĻāĻā§āώāϤāĻž āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻāϤāĻžāĻā§ āϏāϰāĻžāϏāϰāĻŋ āĻĒā§āϰāĻāĻžāĻŦāĻŋāϤ āĻāϰā§āĨ¤
- āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻĒāĻĻā§āϧāϤāĻŋāϰ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž:
- āĻŦāĻŋāĻāĻŋāύā§āύ āĻŽāϧā§āϝāĻŽāĻž āĻ
āύā§āϏāύā§āϧāĻžāύ āĻāĻŦāĻ āĻŦāĻŋāĻāĻžāĻāύ āĻā§āĻļāϞ āĻāϞā§āϞā§āĻāϝā§āĻā§āϝ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āĻāĻāĻŋāϞāϤāĻžāϰ āĻĒāĻžāϰā§āĻĨāĻā§āϝ āϤā§āϰāĻŋ āĻāϰā§
- āĻŦāĻŋāĻāĻŋāύā§āύ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āϏāĻŋāϏā§āĻā§āĻŽā§āĻāĻŋāĻ āϤā§āϞāύāĻž āĻāĻŦāĻ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āĻŦāĻŋāĻļā§āϞā§āώāĻŖā§āϰ āĻ
āĻāĻžāĻŦ
- āĻŦāĻšā§-āĻĨā§āϰā§āĻĄā§āĻĄ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāύ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āϏāĻŽā§āĻĒā§āϰā§āĻŖāĻāĻžāĻŦā§ āĻ
āύā§āĻŦā§āώāĻŖ āĻāϰāĻž āĻšāϝāĻŧāύāĻŋ
- āĻāĻŦā§āώāĻŖāĻž āĻĒā§āϰā§āϰāĻŖāĻž: āϤāĻŋāύāĻāĻŋ āĻāĻŋāύā§āύ k-d āĻāĻžāĻ āύāĻŋāϰā§āĻŽāĻžāĻŖ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āϏāĻŋāϏā§āĻā§āĻŽā§āĻāĻŋāĻāĻāĻžāĻŦā§ āϤā§āϞāύāĻž āĻāϰā§, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āĻĒā§āϰāϝāĻŧā§āĻā§āϰ āĻāύā§āϝ āύāĻŋāϰā§āĻŦāĻžāĻāύ āύāĻŋāϰā§āĻĻā§āĻļāύāĻž āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻž āĻāĻŦāĻ āϏāĻŽāĻžāύā§āϤāϰāĻžāϞ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāύā§āϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻ
āύā§āĻŦā§āώāĻŖ āĻāϰāĻžāĨ¤
- āϏāĻŋāϏā§āĻā§āĻŽā§āĻāĻŋāĻ āϤā§āϞāύāĻž: āϤāĻŋāύāĻāĻŋ āϏāĻŽāϝāĻŧ āĻāĻāĻŋāϞāϤāĻž āϝāĻĨāĻžāĻā§āϰāĻŽā§ O(n log n), O(kn log n) āĻāĻŦāĻ O(kn log n) + O(n log n) āϏāĻš k-d āĻāĻžāĻ āύāĻŋāϰā§āĻŽāĻžāĻŖ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻŦāϰā§āĻŖāύāĻž āĻāĻŦāĻ āϤā§āϞāύāĻž
- āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āĻŦā§āĻā§āĻāĻŽāĻžāϰā§āĻ āĻĒāϰā§āĻā§āώāĻž: āĻāϧā§āύāĻŋāĻ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽā§ āĻŦā§āϝāĻžāĻĒāĻ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āĻĒāϰā§āĻā§āώāĻž, āĻŦāĻŋāĻāĻŋāύā§āύ āĻĄā§āĻāĻž āϏā§āĻā§āϞ (2^16 āĻĨā§āĻā§ 2^24 āύā§āĻĄ) āĻāĻŦāĻ āĻŽāĻžāϤā§āϰāĻž (2-6 āĻŽāĻžāϤā§āϰāĻž) āĻā§āĻĄāĻŧā§
- āϏāĻŽāĻžāύā§āϤāϰāĻžāϞāĻāϰāĻŖ āϏā§āĻāĻŋāĻŽ: O(kn log n) + O(n log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻāύā§āϝ āĻĻā§āĻŦāĻŋ-āĻĨā§āϰā§āĻĄā§āĻĄ āϏāĻŽā§āĻĒāĻžāĻĻāύ āϏā§āĻāĻŋāĻŽ āĻĒā§āϰāϏā§āϤāĻžāĻŦ āĻāĻŦāĻ āĻāϰ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ
- āĻŽā§āĻŽāϰāĻŋ āĻāĻŦāĻ āĻā§āϝāĻžāĻļā§ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ: āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻŽā§āĻŽāϰāĻŋ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻž āĻāĻŦāĻ āĻā§āϝāĻžāĻļā§ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻžāϰ āĻāĻā§āϰ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ, āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āĻĒāĻžāϰā§āĻĨāĻā§āϝā§āϰ āĻŽā§āϞ āĻāĻžāϰāĻŖ āĻŦā§āϝāĻžāĻā§āϝāĻž āĻāϰāĻž
- āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āύāĻŋāϰā§āĻĻā§āĻļāύāĻž: āĻĒāϰā§āĻā§āώāĻžāĻŽā§āϞāĻ āĻĢāϞāĻžāĻĢāϞā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āĻŦāĻŋāĻāĻŋāύā§āύ āĻĒā§āϰāϝāĻŧā§āĻ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϰ āĻāύā§āϝ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āύāĻŋāϰā§āĻŦāĻžāĻāύ āϏā§āĻĒāĻžāϰāĻŋāĻļ
āĻāύāĻĒā§āĻ: k-āĻŽāĻžāϤā§āϰāĻŋāĻ āĻĄā§āĻāĻž āĻĒāϝāĻŧā§āύā§āĻ āϏā§āĻ, āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāϝāĻŧā§āύā§āĻā§ k āĻāĻŋ āϏāĻŽāύā§āĻŦāϝāĻŧ āĻŽāĻžāύ āϰāϝāĻŧā§āĻā§
āĻāĻāĻāĻĒā§āĻ: āϏā§āώāĻŽ k-d āĻāĻžāĻ, āĻĻāĻā§āώ āϏā§āĻĨāĻžāύ āĻĒā§āϰāĻļā§āύ āϏāĻŽāϰā§āĻĨāύ āĻāϰā§
āϏā§āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž: āĻāĻžāĻā§āϰ āϏāύā§āϤā§āϞāύ āĻŦāĻāĻžāϝāĻŧ āϰāĻžāĻāĻž, āύāĻŋāϰā§āĻŽāĻžāĻŖ āϏāĻŽāϝāĻŧ āĻāĻāĻŋāϞāϤāĻž āĻšā§āϰāĻžāϏ āĻāϰāĻž
- āĻŽā§āϞ āϧāĻžāϰāĻŖāĻž: "āĻŽāϧā§āϝāĻŽāĻžāϰ āĻŽāϧā§āϝāĻŽāĻž" (median of medians) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž
- āĻŦāĻŋāĻāĻžāĻāύ āĻā§āĻļāϞ: āĻŽā§āϞ āĻ
ā§āϝāĻžāϰā§āϤ⧠āϏāϰāĻžāϏāϰāĻŋ āĻŦāĻŋāĻāĻžāĻāύ, āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋāϤ⧠āĻŽāϧā§āϝāĻŽāĻž āĻā§āĻāĻā§ āĻĒā§āϝāĻŧā§ āĻ
ā§āϝāĻžāϰ⧠āĻŦāĻŋāĻāĻā§āϤ āĻāϰāĻž
- āϏā§āĻĒāĻžāϰāĻā§ āĻĄāĻŋāĻāĻžāĻāύ: āĻāĻā§āϰāĻžāĻāĻžāϰ āĻŦāĻŋāύā§āϝāĻžāϏā§āϰ āϏā§āĻĒāĻžāϰāĻā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž (āϝā§āĻŽāύ x:y:z, y:z:x, zây) āϤā§āϞāύāĻžāϰ āĻāύā§āϝ
- āϏāĻŽāϝāĻŧ āĻāĻāĻŋāϞāϤāĻž: O(n log n), āĻāĻžāϰāĻŖ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏā§āϤāϰā§āϰ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋ O(n) āϏāĻŽāϝāĻŧ āύā§āϝāĻŧ, āĻŽā§āĻ log n āϏā§āϤāϰ
- āĻŽā§āϞ āϧāĻžāϰāĻŖāĻž: āĻĒā§āϰā§āĻŦ-āϏāĻžāĻāĻžāύ⧠+ āϏā§āĻāĻ āĻ
ā§āϝāĻžāϰ⧠āĻŦāĻŋāĻāĻžāĻāύ
- āĻĒā§āϰā§āĻŦ-āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāϰāĻŖ: āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŽāĻžāϤā§āϰāĻž āĻŦāĻŋāϞāĻŽā§āĻŦ āϏāĻžāĻāĻžāύ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĒā§āϰā§āĻŦā§ āϏāĻžāĻāĻžāύā§, k āĻāĻŋ āϏā§āĻāĻ āĻ
ā§āϝāĻžāϰ⧠āϤā§āϰāĻŋ āĻāϰāĻž
- āĻŦāĻŋāĻāĻžāĻāύ āĻā§āĻļāϞ: āϏā§āĻāĻ āĻ
ā§āϝāĻžāϰ⧠āĻāĻĒāĻžāĻĻāĻžāύ āĻ
āύā§āϞāĻŋāĻĒāĻŋ āĻāϰ⧠āĻŦāĻŋāĻāĻžāĻāύ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ, āĻĒā§āϰā§āĻŦ-āϏāĻžāĻāĻžāύ⧠āĻā§āϰāĻŽ āĻŦāĻāĻžāϝāĻŧ āϰāĻžāĻāĻž
- āϏā§āĻŦāĻŋāϧāĻž: āĻŦāĻŋāĻāĻžāĻāύā§āϰ āĻĒāϰ⧠āĻĒā§āύāĻāϏāĻžāĻāĻžāύā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āύā§āĻ, āĻŦāĻšā§-āĻĨā§āϰā§āĻĄā§āĻĄ āϏāĻŽāĻžāύā§āϤāϰāĻžāϞāĻāϰāĻŖā§āϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§āϤ
- āϏāĻŽāϝāĻŧ āĻāĻāĻŋāϞāϤāĻž: O(kn log n) + O((k-1)n log n)
- āĻŽā§āϞ āϧāĻžāϰāĻŖāĻž: āύāĻŋāĻŦāύā§āϧāύ āĻŦāĻŋāĻāĻžāĻāύ, āĻĒā§āϰāĻā§āϤ āĻ
ā§āϝāĻžāϰ⧠āĻ
āύā§āϞāĻŋāĻĒāĻŋ āĻāĻĄāĻŧāĻžāύā§
- āύāĻŋāĻŦāύā§āϧāύ āĻ
ā§āϝāĻžāϰā§: BN (BegiN) āĻāĻŦāĻ SS (Subtree Size) āĻ
ā§āϝāĻžāϰ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻŦāĻŋāĻāĻžāĻāύ āϤāĻĨā§āϝ āϰā§āĻāϰā§āĻĄ āĻāϰāĻž
- āĻŦāĻŋāĻāĻžāĻāύ āĻā§āĻļāϞ: āύāĻŋāĻŦāύā§āϧāύ āĻ
ā§āϝāĻžāϰ⧠āϏāĻāĻļā§āϧāύ āĻāϰ⧠"āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ" āĻŦāĻŋāĻāĻžāĻāύ, āĻĒā§āϰāĻā§āϤ āĻĄā§āĻāĻž āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰ āύāĻž āĻāϰā§
- āύāĻŋāϰā§āĻŽāĻžāĻŖ āĻĒāϰā§āϝāĻžāϝāĻŧ: āĻļā§āώ⧠āύāĻŋāĻŦāύā§āϧāύ āϤāĻĨā§āϝ āĻ
āύā§āϝāĻžāϝāĻŧā§ O(n log n) āϏāĻŽāϝāĻŧā§ āĻāĻžāĻ āύāĻŋāϰā§āĻŽāĻžāĻŖ
- āϏā§āĻĒāĻžāϰāĻā§ āĻĄāĻŋāĻāĻžāĻāύ: āĻāĻā§āϰāĻžāĻāĻžāϰ āĻŦāĻŋāύā§āϝāĻžāϏā§āϰ āϏā§āĻĒāĻžāϰāĻā§ (x:y:z, y:z:x, zây) āĻāĻĻā§āĻāĻžāĻŦāύā§āĻāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻŦāĻšā§āĻŽāĻžāϤā§āϰāĻŋāĻ āϤā§āϞāύāĻž āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāĻž, āĻŽāĻžāϤā§āϰāĻž āύāĻŋāϰā§āĻŦāĻžāĻāύā§āϰ āĻāĻāĻŋāϞāϤāĻž āĻāĻĄāĻŧāĻžāύā§
- āύāĻŋāĻŦāύā§āϧāύ āĻŦāĻŋāĻāĻžāĻāύ: O(kn log n) + O(n log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āύāĻŋāĻŦāύā§āϧāύ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻŦāĻŋāĻĒā§āϞ āĻ
ā§āϝāĻžāϰ⧠āĻ
āύā§āϞāĻŋāĻĒāĻŋ āĻ
āĻĒāĻžāϰā§āĻļāύ āĻāĻĄāĻŧāĻžāϝāĻŧ, āϤāĻžāϤā§āϤā§āĻŦāĻŋāĻāĻāĻžāĻŦā§ āĻāϰāĻ āĻĻāĻā§āώ
- āϏāĻŽāĻžāύā§āϤāϰāĻžāϞāĻāϰāĻŖ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāύ: āύāĻŋāĻŦāύā§āϧāύ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻāύā§āϝ āĻĻā§āĻŦāĻŋ-āĻĨā§āϰā§āĻĄā§āĻĄ āϏāĻŽā§āĻĒāĻžāĻĻāύ āϏā§āĻāĻŋāĻŽ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž, āϏāĻžāĻŽāύā§āϰ āĻĻāĻŋāĻ āĻāĻŦāĻ āĻŦāĻŋāĻĒāϰā§āϤ āĻĻāĻŋāĻ āĻĨā§āĻā§ āĻāĻāϝā§āĻā§ āĻ
ā§āϝāĻžāϰ⧠āĻāĻĒāĻžāĻĻāĻžāύ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰāĻž
- āĻĒā§āϰāϏā§āϏāϰ: Intel i7 14700T (8 āĻāĻŋ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ āĻā§āϰ, āĻšāĻžāĻāĻĒāĻžāϰāĻĨā§āϰā§āĻĄāĻŋāĻ āϏāĻŽāϰā§āĻĨāύ)
- āĻŽā§āĻŽāϰāĻŋ: 2Ã32GB DDR5-4800 RAM
- āĻā§āϝāĻžāĻļā§: 80KB L1, āĻĒā§āϰāϤāĻŋ āĻā§āϰ⧠2MB L2, 33MB āĻāĻžāĻ āĻāϰāĻž L3
- āĻ
āĻĒāĻžāϰā§āĻāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽ: Ubuntu 24.04.1 LTS
- āϏā§āĻā§āϞ: 2^16 āĻĨā§āĻā§ 2^24 āύā§āĻĄ
- āĻŽāĻžāϤā§āϰāĻž: 2-6 āĻŽāĻžāϤā§āϰāĻž
- āĻĄā§āĻāĻž āĻĒā§āϰāĻāĻžāϰ: 64-āĻŦāĻŋāĻ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž, āϏāϰā§āĻŦā§āĻā§āĻ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž āĻĒāϰāĻŋāϏāϰ⧠āϏāĻŽāĻžāύāĻāĻžāĻŦā§ āĻŦāĻŋāϤāϰāĻŖ āĻāϰāĻž
- āϰā§āϝāĻžāύā§āĻĄāĻŽāĻžāĻāĻā§āĻļāύ: Mersenne Twister āϏāĻŋāĻāĻĄā§-āϰā§āϝāĻžāύā§āĻĄāĻŽ āϏāĻāĻā§āϝāĻž āĻā§āύāĻžāϰā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž
- āϏāĻŽā§āĻĒāĻžāĻĻāύ āϏāĻŽāϝāĻŧ: āĻŦāĻŋāϞāĻŽā§āĻŦ āϏāĻžāĻāĻžāύ⧠āϏāĻŽāϝāĻŧ, k-d āĻāĻžāĻ āύāĻŋāϰā§āĻŽāĻžāĻŖ āϏāĻŽāϝāĻŧ
- āϏā§āĻā§āϞā§āĻŦāĻŋāϞāĻŋāĻāĻŋ: t1/tn (āĻāĻāĻ-āĻĨā§āϰā§āĻĄ āϏāĻŽāϝāĻŧ/n-āĻĨā§āϰā§āĻĄ āϏāĻŽāϝāĻŧ)
- āĻā§āϝāĻžāĻļā§ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž: LLC (Last Level Cache) āϞā§āĻĄ āĻŽāĻŋāϏ āϏāĻāĻā§āϝāĻž
- āĻŽā§āĻŽāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ: āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻŽā§āĻŽāϰāĻŋ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻž āĻŦāĻŋāĻļā§āϞā§āώāĻŖ
āϤāĻŋāύāĻāĻŋ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻāĻāĻ-āĻĨā§āϰā§āĻĄ āĻāĻŦāĻ āĻŦāĻšā§-āĻĨā§āϰā§āĻĄ āϏāĻāϏā§āĻāϰāĻŖ (1-16 āĻĨā§āϰā§āĻĄ) āĻāĻāĻ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻŦāĻ āĻĄā§āĻāĻžāϏā§āĻā§ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āϤā§āϞāύāĻž
- O(kn log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ: 3 āĻŽāĻžāϤā§āϰāĻžāϰ āύāĻŋāĻā§ O(n log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻā§āϝāĻŧā§ āĻāύā§āύāϤ
- O(n log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ: 5 āĻŽāĻžāϤā§āϰāĻž āĻāĻŦāĻ āϤāĻžāϰ āĻāĻĒāϰ⧠āĻāϰāĻ āĻāĻžāϞ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž, āĻāĻŦāĻ āϏāĻŽā§āĻĒāĻžāĻĻāύ āϏāĻŽāϝāĻŧ āĻŽāĻžāϤā§āϰāĻž āĻŦā§āĻĻā§āϧāĻŋāϰ āϏāĻžāĻĨā§ āĻŦā§āĻĻā§āϧāĻŋ āĻĒāĻžāϝāĻŧ āύāĻž
- O(kn log n) + O(n log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ: āĻĒā§āϰāĻĨāĻŽ āĻĻā§āĻāĻŋ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻā§āϝāĻŧā§ āĻāϞā§āϞā§āĻāϝā§āĻā§āϝāĻāĻžāĻŦā§ āϧā§āϰ
- O(kn log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ: āϏāϰā§āĻŦā§āϤā§āϤāĻŽ āϏā§āĻā§āϞā§āĻŦāĻŋāϞāĻŋāĻāĻŋ, 16 āĻĨā§āϰā§āĻĄā§ āĻĒā§āϰāĻžāϝāĻŧ 7 āĻā§āĻŖ āϤā§āĻŦāϰāĻŖ āĻ
āϰā§āĻāύ āĻāϰāĻž
- O(n log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ: āĻŽāϧā§āϝāĻŽ āϏā§āĻā§āϞā§āĻŦāĻŋāϞāĻŋāĻāĻŋ, 16 āĻĨā§āϰā§āĻĄā§ āĻĒā§āϰāĻžāϝāĻŧ 5 āĻā§āĻŖ āϤā§āĻŦāϰāĻŖ āĻ
āϰā§āĻāύ āĻāϰāĻž
- O(kn log n) + O(n log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ: āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻžāϰāĻžāĻĒ āϏā§āĻā§āϞā§āĻŦāĻŋāϞāĻŋāĻāĻŋ, āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻŦāĻŋāϞāĻŽā§āĻŦ āϏāĻžāĻāĻžāύ⧠āĻ
āĻāĻļ āϏāĻŽāĻžāύā§āϤāϰāĻžāϞ āĻāϰāĻž āϝāĻžāϝāĻŧ
āĻāĻļā§āĻāϰā§āϝāĻāύāĻāĻāĻžāĻŦā§, O(kn log n) + O(n log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻĻā§āĻŦāĻŋ-āĻĨā§āϰā§āĻĄā§āĻĄ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻāĻāĻ-āĻĨā§āϰā§āĻĄā§āϰ āĻā§āϝāĻŧā§ āĻĻā§āϰā§āϤ āύāϝāĻŧ, āϏāĻŽā§āĻĒāĻžāĻĻāύ āϏāĻŽāϝāĻŧ āĻŽā§āϞāϤ āĻāĻāĻāĨ¤
āĻŽā§āϞ āĻāĻŦāĻŋāώā§āĻāĻžāϰ: LLC āϞā§āĻĄ āĻŽāĻŋāϏ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āĻĒāĻžāϰā§āĻĨāĻā§āϝā§āϰ āĻŽā§āϞ āĻāĻžāϰāĻŖ āĻĒā§āϰāĻāĻžāĻļ āĻāϰā§:
- O(kn log n) + O(n log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻĻā§āĻŦāĻŋ-āĻĨā§āϰā§āĻĄā§āĻĄ āϏāĻāϏā§āĻāϰāĻŖ āĻāĻāĻ-āĻĨā§āϰā§āĻĄ āϏāĻāϏā§āĻāϰāĻŖā§āϰ āĻā§āϝāĻŧā§ 2 āĻā§āĻŖ āĻŦā§āĻļāĻŋ LLC āĻā§āϝāĻžāĻļā§ āĻŽāĻŋāϏ āϤā§āϰāĻŋ āĻāϰā§
- āĻāĻāĻŋ āĻŽāĻŋāĻĨā§āϝāĻž āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ (false sharing) āϏāĻŽāϏā§āϝāĻžāϰ āĻāĻžāϰāĻŖā§: āĻĻā§āĻāĻŋ āĻĨā§āϰā§āĻĄ āĻāύā§āĻāĻžāϰāϞāĻŋāĻāĻĄ āĻ
ā§āϝāĻžāϰ⧠āĻāĻĒāĻžāĻĻāĻžāύ āĻ
ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰā§, āĻā§āϝāĻžāĻļā§ āϞāĻžāĻāύ āĻ
āĻŦā§āϧāϤāĻž āĻāĻāĻžāϝāĻŧ
- O(n log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ: āϏāĻŽā§āĻĒāĻžāĻĻāύ āϏāĻŽāϝāĻŧ āĻŽāĻžāϤā§āϰāĻž āĻŦā§āĻĻā§āϧāĻŋāϰ āϏāĻžāĻĨā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšāϝāĻŧ āύāĻž
- O(kn log n) āĻāĻŦāĻ O(kn log n) + O(n log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ: āϏāĻŽā§āĻĒāĻžāĻĻāύ āϏāĻŽāϝāĻŧ āĻŽāĻžāϤā§āϰāĻž k āĻāϰ āϏāĻžāĻĨā§ āϰā§āĻāĻŋāĻāĻāĻžāĻŦā§ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ
- 4 āĻĨā§āϰā§āĻĄ: O(kn log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ k=3 āĻ O(n log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽāĻā§ āĻ
āϤāĻŋāĻā§āϰāĻŽ āĻāϰā§
- 16 āĻĨā§āϰā§āĻĄ: āĻāϰāĻ āĻāĻžāϞ āϏā§āĻā§āϞā§āĻŦāĻŋāϞāĻŋāĻāĻŋāϰ āĻāĻžāϰāĻŖā§, āĻā§āϰāϏ-āĻāĻāĻžāϰ āĻĒāϝāĻŧā§āύā§āĻ k=4 āĻ āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰāĻŋāϤ āĻšāϝāĻŧ
- Bentley (1975): āĻĒā§āϰāĻĨāĻŽ k-d āĻāĻžāĻ āϧāĻžāϰāĻŖāĻž āĻāĻŦāĻ āĻŽā§āϞāĻŋāĻ āύāĻŋāϰā§āĻŽāĻžāĻŖ āĻĒāĻĻā§āϧāϤāĻŋ āĻĒā§āϰāϏā§āϤāĻžāĻŦ āĻāϰāĻž
- Blum et al. (1973): āĻŽāϧā§āϝāĻŽāĻžāϰ āĻŽāϧā§āϝāĻŽāĻž āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ, O(n log n) āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻāĻŋāϤā§āϤāĻŋ āϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻž
- Friedman et al. (1977): āĻŦā§āĻāĻŋāϤā§āϰā§āϝ-āĻāĻŋāϤā§āϤāĻŋāĻ āĻŽāĻžāϤā§āϰāĻž āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻā§āĻļāϞ āĻĒā§āϰāϏā§āϤāĻžāĻŦ āĻāϰāĻž
- Procopiuc et al. (2003): āĻĒā§āϰā§āĻŦ-āϏāĻžāĻāĻžāύ⧠āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻ
āύā§āĻŦā§āώāĻŖ
- āϏāĻŋāϏā§āĻā§āĻŽā§āĻāĻŋāĻāϤāĻž: āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰā§āϰ āĻŽāϤ⧠āϤāĻŋāύāĻāĻŋ āĻĒā§āϰāϧāĻžāύ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻŦā§āϝāĻžāĻĒāĻ āϤā§āϞāύāĻž
- āĻāϧā§āύāĻŋāĻāϤāĻž: āĻāϧā§āύāĻŋāĻ āĻŦāĻšā§-āĻā§āϰ āĻāϰā§āĻāĻŋāĻā§āĻāĻāĻžāϰ⧠āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āĻŦāĻŋāĻļā§āϞā§āώāĻŖ
- āĻāĻā§āϰāϤāĻž: āĻā§āϝāĻžāĻļā§ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻžāϰ āĻĻā§āώā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āĻāĻāϰāĻŖ āĻŦā§āϝāĻžāĻā§āϝāĻž āĻāϰāĻž
- āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻāϤāĻž: āϏā§āĻĒāώā§āĻ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āύāĻŋāϰā§āĻŦāĻžāĻāύ āύāĻŋāϰā§āĻĻā§āĻļāύāĻž āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻž
- āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āύāĻŋāϰā§āĻŦāĻžāĻāύ:
- āύāĻŋāĻŽā§āύ āĻŽāĻžāϤā§āϰāĻž (â¤3): O(kn log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āϏāϰā§āĻŦā§āϤā§āϤāĻŽ
- āĻāĻā§āĻ āĻŽāĻžāϤā§āϰāĻž (âĨ5): O(n log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āĻāϰāĻ āĻāĻžāϞ
- āĻŦāϰā§āϤāĻŽāĻžāύ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ⧠āύāĻŋāĻŦāύā§āϧāύ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āĻā§āύ āϏā§āĻŦāĻŋāϧāĻž āύā§āĻ
- āϏāĻŽāĻžāύā§āϤāϰāĻžāϞāĻāϰāĻŖ: O(kn log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āϏāϰā§āĻŦā§āϤā§āϤāĻŽ āϏāĻŽāĻžāύā§āϤāϰāĻžāϞ āϏāĻŽā§āĻĒā§āϰāϏāĻžāϰāĻŖ āϏā§āĻā§āϞā§āĻŦāĻŋāϞāĻŋāĻāĻŋ āϰāϝāĻŧā§āĻā§
- āĻā§āϝāĻžāĻļā§ āϏāĻāĻŦā§āĻĻāύāĻļā§āϞāϤāĻž: āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āĻā§āϝāĻžāĻļā§ āĻāĻāϰāĻŖ āĻĻā§āĻŦāĻžāϰāĻž āĻŦā§āĻšā§ āĻĒāϰāĻŋāĻŽāĻžāĻŖā§ āĻĒā§āϰāĻāĻžāĻŦāĻŋāϤ āĻšāϝāĻŧ
- āĻĄā§āĻāĻž āĻŦāĻŋāϤāϰāĻŖ: āĻĒāϰā§āĻā§āώāĻž āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏāĻŽāĻžāύāĻāĻžāĻŦā§ āĻŦāĻŋāϤāϰāĻŖ āĻāϰāĻž āϰā§āϝāĻžāύā§āĻĄāĻŽ āĻĄā§āĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āĻĒā§āϰāĻā§āϤ āĻĒā§āϰāϝāĻŧā§āĻā§ āĻĄā§āĻāĻž āĻŦāĻŋāϤāϰāĻŖ āĻāĻŋāύā§āύ āĻšāϤ⧠āĻĒāĻžāϰā§
- āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āύāĻŋāϰā§āĻāϰāϤāĻž: āĻāĻĒāϏāĻāĻšāĻžāϰ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āĻāϰā§āĻāĻŋāĻā§āĻāĻāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāĻāĻžāĻŦāĻŋāϤ āĻšāϤ⧠āĻĒāĻžāϰā§
- āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ: āύāĻŋāĻŦāύā§āϧāύ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻāĻĄ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāύā§āύāϤ āĻšāϤ⧠āĻĒāĻžāϰā§
- āĻŽāϧā§āϝāĻŽāĻž āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāύ: median of medians āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āϏā§āĻā§āϞā§āĻŦāĻŋāϞāĻŋāĻāĻŋ āĻāύā§āύāϤ āĻāϰāĻž
- āĻā§āϝāĻžāĻļā§-āĻŦāĻžāύā§āϧāĻŦ āĻĄāĻŋāĻāĻžāĻāύ: āύāĻŋāĻŦāύā§āϧāύ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻāύā§āϝ āĻā§āϝāĻžāĻļā§ āϏāĻāĻāϰā§āώ āĻšā§āϰāĻžāϏ āĻāϰāĻžāϰ āĻĄā§āĻāĻž āĻāĻžāĻ āĻžāĻŽā§ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž
- āϏā§āĻŦ-āĻ
āĻāĻŋāϝā§āĻāĻŋāϤ āύāĻŋāϰā§āĻŦāĻžāĻāύ: āĻĄā§āĻāĻž āĻŦā§āĻļāĻŋāώā§āĻā§āϝā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāĻžāϰ āĻŦā§āĻĻā§āϧāĻŋāĻŽāĻžāύ āϏāĻŋāϏā§āĻā§āĻŽ āĻŦāĻŋāĻāĻžāĻļ āĻāϰāĻž
- GPU āϤā§āĻŦāϰāĻŖ: GPU āϏāĻŽāĻžāύā§āϤāϰāĻžāϞāĻāϰāĻŖā§āϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻ
āύā§āĻŦā§āώāĻŖ āĻāϰāĻž
- āϤāϤā§āϤā§āĻŦ āĻāĻŦāĻ āĻ
āύā§āĻļā§āϞāύā§āϰ āϏāĻŽāύā§āĻŦāϝāĻŧ: āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏāĻŽāϝāĻŧ āĻāĻāĻŋāϞāϤāĻž āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āύāϝāĻŧ, āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āĻĒāϰā§āĻā§āώāĻžāĻ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāĻž
- āĻāĻā§āϰ āĻāĻžāϰāĻŖ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ: āĻā§āϝāĻžāĻļā§ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āĻŦāĻŋāĻļā§āϞā§āώāĻŖā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āĻāĻāϰāĻŖā§āϰ āĻŽā§āϞ āĻāĻžāϰāĻŖ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻž
- āĻāĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āĻŽā§āϞā§āϝ: āĻĒā§āϰāĻā§āϤ āĻĒā§āϰāϝāĻŧā§āĻā§ āϏā§āĻĒāώā§āĻ āύāĻŋāϰā§āĻŦāĻžāĻāύ āύāĻŋāϰā§āĻĻā§āĻļāύāĻž āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻž
- āĻāĻ ā§āϰ āĻĒāϰā§āĻā§āώāĻž āĻĄāĻŋāĻāĻžāĻāύ: āĻŦāĻšā§-āĻŽāĻžāϤā§āϰāĻŋāĻ, āĻŦāĻšā§-āϏā§āĻā§āϞ āĻŦā§āϝāĻžāĻĒāĻ āĻĒāϰā§āĻā§āώāĻž
- āĻā§āĻĄ āĻāĻĒā§āύ āϏā§āϰā§āϏ: āϏāĻŽā§āĻĒā§āϰā§āĻŖ C++ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻž, āĻĒā§āύāϰā§ā§āĻĒāĻžāĻĻāύāϝā§āĻā§āϝāϤāĻž āĻŦā§āĻĻā§āϧāĻŋ āĻāϰāĻž
- āĻĄā§āĻāĻž āϏā§āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž: āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϰā§āϝāĻžāύā§āĻĄāĻŽ āϏāĻŽāĻžāύāĻāĻžāĻŦā§ āĻŦāĻŋāϤāϰāĻŖ āĻāϰāĻž āĻĄā§āĻāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻž, āĻĒā§āϰāĻā§āϤ āĻĄā§āĻāĻžāϏā§āĻ āϝāĻžāĻāĻžāĻāĻāϰāĻŖā§āϰ āĻ
āĻāĻžāĻŦ
- āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻāĻ: āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻāĻāĻŋ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽā§ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻž, āĻāĻĒāϏāĻāĻšāĻžāϰā§āϰ āϏāϰā§āĻŦāĻāύā§āύāϤāĻž āϏā§āĻŽāĻŋāϤ
- āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāύ āĻāĻā§āϰāϤāĻž: āύāĻŋāĻŦāύā§āϧāύ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāύ āĻ
āύā§āĻŦā§āώāĻŖ āϝāĻĨā§āώā§āĻ āĻāĻā§āϰ āύāϝāĻŧ
- āϤāĻžāϤā§āϤā§āĻŦāĻŋāĻ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ: āĻā§āϝāĻžāĻļā§ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻžāϰ āϤāĻžāϤā§āϤā§āĻŦāĻŋāĻ āĻŽāĻĄā§āϞāĻŋāĻāϝāĻŧā§āϰ āĻ
āĻāĻžāĻŦ
- āĻāĻāĻžāĻĄā§āĻŽāĻŋāĻ āĻŽā§āϞā§āϝ: k-d āĻāĻžāĻ āύāĻŋāϰā§āĻŽāĻžāĻŖ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āĻāĻŦā§āώāĻŖāĻžāϰ āĻāύā§āϝ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻŦā§āĻā§āĻāĻŽāĻžāϰā§āĻ āĻāĻŦāĻ āĻ
āύā§āϤāϰā§āĻĻā§āώā§āĻāĻŋ āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻž
- āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āĻŽā§āϞā§āϝ: āĻĒā§āϰāĻā§āϤ āĻĒā§āϰāϝāĻŧā§āĻā§ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āύāĻŋāϰā§āĻŦāĻžāĻāύāĻā§ āϏāϰāĻžāϏāϰāĻŋ āύāĻŋāϰā§āĻĻā§āĻļāύāĻž āĻĻā§āĻāϝāĻŧāĻž
- āĻĒāĻĻā§āϧāϤāĻŋāĻāϤ āĻ
āĻŦāĻĻāĻžāύ: āĻĄā§āĻāĻž āĻāĻžāĻ āĻžāĻŽā§ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āĻŽā§āϞā§āϝāĻžāϝāĻŧāύā§āϰ āĻĒāĻĻā§āϧāϤāĻŋ āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāĻž
- āĻĒā§āύāϰā§ā§āĻĒāĻžāĻĻāύāϝā§āĻā§āϝāϤāĻž: āĻāĻĒā§āύ āϏā§āϰā§āϏ āĻā§āĻĄ āĻ
āύā§āϝāĻžāύā§āϝ āĻāĻŦā§āώāĻāĻĻā§āϰ āϝāĻžāĻāĻžāĻ āĻāĻŦāĻ āϏāĻŽā§āĻĒā§āϰāϏāĻžāϰāĻŖ āϏāĻšāĻāϤāϰ āĻāϰāĻž
- āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāϰ āĻā§āϰāĻžāĻĢāĻŋāĻā§āϏ: 3D āĻĻā§āĻļā§āϝā§āϰ āϏā§āĻĨāĻžāύ āϏā§āĻāĻ āĻāĻŦāĻ āϏāĻāĻāϰā§āώ āϏāύāĻžāĻā§āϤāĻāϰāĻŖ
- āĻŽā§āĻļāĻŋāύ āϞāĻžāϰā§āύāĻŋāĻ: k āύāĻŋāĻāĻāϤāĻŽ āĻĒā§āϰāϤāĻŋāĻŦā§āĻļā§ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āϤā§āĻŦāϰāĻŖ
- āĻā§āĻā§āϞāĻŋāĻ āϤāĻĨā§āϝ āĻŦā§āϝāĻŦāϏā§āĻĨāĻž: āϏā§āĻĨāĻžāύ āĻĄā§āĻāĻž āĻĒā§āϰāĻļā§āύ āĻāĻŦāĻ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ
- āĻĄā§āĻāĻžāĻŦā§āϏ āϏāĻŋāϏā§āĻā§āĻŽ: āĻŦāĻšā§-āĻŽāĻžāϤā§āϰāĻŋāĻ āϏā§āĻāĻ āĻāĻžāĻ āĻžāĻŽā§ āύāĻŋāϰā§āĻŽāĻžāĻŖ
āĻāĻ āĻĒā§āĻĒāĻžāϰāĻāĻŋ āĻāĻ āĻā§āώā§āϤā§āϰā§āϰ āĻŽā§āϞ āϏāĻžāĻšāĻŋāϤā§āϝ āĻāĻĻā§āϧā§āϤ āĻāϰā§, āϝāĻžāϰ āĻŽāϧā§āϝ⧠āϰāϝāĻŧā§āĻā§:
- Bentley (1975): k-d āĻāĻžāĻā§āϰ āĻŽā§āϞ āĻĒā§āĻĒāĻžāϰ
- Blum et al. (1973): āĻŽāϧā§āϝāĻŽāĻž āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āϤāĻžāϤā§āϤā§āĻŦāĻŋāĻ āĻāĻŋāϤā§āϤāĻŋ
- Cao et al. (2020): āύāĻŋāĻŦāύā§āϧāύ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻĒā§āϰāϏā§āϤāĻžāĻŦ
- Brown (2015): āϞā§āĻāĻā§āϰ O(kn log n) āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āĻāĻžāĻ
āϏāĻžāĻŽāĻā§āϰāĻŋāĻ āĻŽā§āϞā§āϝāĻžāϝāĻŧāύ: āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻā§āĻ āĻŽāĻžāύā§āϰ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻĒā§āĻĒāĻžāϰ, āϏāĻŋāϏā§āĻā§āĻŽā§āĻāĻŋāĻ āϤāĻžāϤā§āϤā§āĻŦāĻŋāĻ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻāĻŦāĻ āĻĒāϰā§āĻā§āώāĻžāĻŽā§āϞāĻ āϝāĻžāĻāĻžāĻāĻāϰāĻŖā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§, k-d āĻāĻžāĻ āύāĻŋāϰā§āĻŽāĻžāĻŖ āĻ
ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āύāĻŋāϰā§āĻŦāĻžāĻāύā§āϰ āĻāύā§āϝ āĻŦā§āĻā§āĻāĻžāύāĻŋāĻ āĻāĻŋāϤā§āϤāĻŋ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤ āĻĒā§āĻĒāĻžāϰāĻāĻŋāϰ āĻĒāϰā§āĻā§āώāĻž āĻĄāĻŋāĻāĻžāĻāύ āĻāĻ ā§āϰ, āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻāĻā§āϰ, āĻāĻŦāĻ āĻāϞā§āϞā§āĻāϝā§āĻā§āϝ āĻāĻāĻžāĻĄā§āĻŽāĻŋāĻ āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āĻŽā§āϞā§āϝ āϰāϝāĻŧā§āĻā§āĨ¤ āϝāĻĻāĻŋāĻ āĻĄā§āĻāĻž āĻŦā§āĻāĻŋāϤā§āϰā§āϝ āĻāĻŦāĻ āϤāĻžāϤā§āϤā§āĻŦāĻŋāĻ āĻŽāĻĄā§āϞāĻŋāĻ āĻĻāĻŋāĻ āĻĨā§āĻā§ āĻāύā§āύāϤāĻŋāϰ āĻāĻžāϝāĻŧāĻāĻž āϰāϝāĻŧā§āĻā§, āϤāĻŦā§ āĻāϰ āĻ
āĻŦāĻĻāĻžāύ āĻāϤāĻŋāĻŽāϧā§āϝ⧠āϝāĻĨā§āώā§āĻ āĻāϞā§āϞā§āĻāϝā§āĻā§āϝ, āĻāĻ āĻā§āώā§āϤā§āϰā§āϰ āĻāϰāĻ āĻāĻŦā§āώāĻŖāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĻā§āĻĸāĻŧ āĻāĻŋāϤā§āϤāĻŋ āϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āĻā§āĨ¤