2025-11-16T20:43:12.511354

Review of Three Algorithms That Build k-d Trees

Brown
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.
academic

āϤāĻŋāύāϟāĻŋ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āĻĒāĻ°ā§āϝāĻžāϞ⧋āϚāύāĻž āϝāĻž k-d āĻ—āĻžāĻ› āϤ⧈āϰāĻŋ āĻ•āϰ⧇

āĻŽā§ŒāϞāĻŋāĻ• āϤāĻĨā§āϝ

  • āĻĒ⧇āĻĒāĻžāϰ āφāχāĻĄāĻŋ: 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 āĻ—āĻžāĻ› āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻŦāĻ°ā§āĻŖāύāĻž āĻāĻŦāĻ‚ āϤ⧁āϞāύāĻž āĻ•āϰ⧇, āϝāĻž āĻŦāĻŋāĻ­āĻžāϜāύ āĻ•ā§ŒāĻļāϞ⧇ āĻĒ⧃āĻĨāĻ•, āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āϤ⧁āϞāύāĻž āĻ•āϰ⧇āĨ¤ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤāĻ­āĻžāĻŦ⧇, āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻĻā§āĻŦāĻŋ-āĻĨā§āϰ⧇āĻĄā§‡āĻĄ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ¸ā§āĻ•āĻŋāĻŽ āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤

āĻ—āĻŦ⧇āώāĻŖāĻž āĻĒāϟāĻ­ā§‚āĻŽāĻŋ āĻāĻŦāĻ‚ āĻĒā§āϰ⧇āϰāĻŖāĻž

āϏāĻŽāĻ¸ā§āϝāĻžāϰ āϏāĻ‚āĻœā§āĻžāĻž

  1. āĻŽā§‚āϞ āϏāĻŽāĻ¸ā§āϝāĻž: k-d āĻ—āĻžāĻ› āϐāϤāĻŋāĻšā§āϝāĻŦāĻžāĻšā§€ āĻ¸ā§āĻŦ-āϏāĻ¨ā§āϤ⧁āϞāĻŋāϤ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻ—āĻžāĻ› āĻ•ā§ŒāĻļāϞ (āϝ⧇āĻŽāύ AVL āĻ—āĻžāĻ› āĻŦāĻž āϞāĻžāϞ-āĻ•āĻžāϞ⧋ āĻ—āĻžāϛ⧇āϰ āĻ˜ā§‚āĻ°ā§āĻŖāύ āĻ…āĻĒāĻžāϰ⧇āĻļāύ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻ¨ā§āϤ⧁āϞāύ āĻŦāϜāĻžāϝāĻŧ āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž, āϤāĻžāχ āĻŽāĻ§ā§āϝāĻŽāĻž āϖ⧁āρāĻœā§‡ āĻĒ⧇āϝāĻŧ⧇ āĻĄā§‡āϟāĻžāϏ⧇āϟāϕ⧇ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋāĻŽā§‚āϞāĻ•āĻ­āĻžāĻŦ⧇ āĻŦāĻŋāĻ­āĻžāϜāύ āĻ•āϰ⧇ āϏ⧁āώāĻŽ k-d āĻ—āĻžāĻ› āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤
  2. āϗ⧁āϰ⧁āĻ¤ā§āĻŦ: k-d āĻ—āĻžāĻ› āĻŦāĻšā§āĻŽāĻžāĻ¤ā§āϰāĻŋāĻ• āĻ¸ā§āĻĨāĻžāύ āĻĄā§‡āϟāĻž āĻ•āĻžāĻ āĻžāĻŽā§‹āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āϏāϰāĻžā§āϜāĻžāĻŽ, āϝāĻž āύāĻŋāĻ•āϟāϤāĻŽ āĻĒā§āϰāϤāĻŋāĻŦ⧇āĻļā§€ āĻ…āύ⧁āϏāĻ¨ā§āϧāĻžāύ, āĻĒāϰāĻŋāϏ⧀āĻŽāĻž āĻĒā§āϰāĻļā§āύ āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻŦā§āϝāĻžāĻĒāĻ•āĻ­āĻžāĻŦ⧇ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āĻĻāĻ•ā§āώāϤāĻž āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ•āϤāĻžāϕ⧇ āϏāϰāĻžāϏāϰāĻŋ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻ•āϰ⧇āĨ¤
  3. āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻĒāĻĻā§āϧāϤāĻŋāϰ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž:
    • āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻŽāĻ§ā§āϝāĻŽāĻž āĻ…āύ⧁āϏāĻ¨ā§āϧāĻžāύ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ­āĻžāϜāύ āĻ•ā§ŒāĻļāϞ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āϜāϟāĻŋāϞāϤāĻžāϰ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āϤ⧈āϰāĻŋ āĻ•āϰ⧇
    • āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϟāĻŋāĻ• āϤ⧁āϞāύāĻž āĻāĻŦāĻ‚ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āĻŦāĻŋāĻļā§āϞ⧇āώāϪ⧇āϰ āĻ…āĻ­āĻžāĻŦ
    • āĻŦāĻšā§-āĻĨā§āϰ⧇āĻĄā§‡āĻĄ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāύ āϏāĻŽā§āĻ­āĻžāĻŦāύāĻž āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ­āĻžāĻŦ⧇ āĻ…āĻ¨ā§āĻŦ⧇āώāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧāύāĻŋ
  4. āĻ—āĻŦ⧇āώāĻŖāĻž āĻĒā§āϰ⧇āϰāĻŖāĻž: āϤāĻŋāύāϟāĻŋ āĻ­āĻŋāĻ¨ā§āύ k-d āĻ—āĻžāĻ› āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϟāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϤ⧁āϞāύāĻž āĻ•āϰ⧇, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āĻĒā§āϰāϝāĻŧā§‹āϗ⧇āϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāύāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻž āĻāĻŦāĻ‚ āϏāĻŽāĻžāĻ¨ā§āϤāϰāĻžāϞ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāύ⧇āϰ āϏāĻŽā§āĻ­āĻžāĻŦāύāĻž āĻ…āĻ¨ā§āĻŦ⧇āώāĻŖ āĻ•āϰāĻžāĨ¤

āĻŽā§‚āϞ āĻ…āĻŦāĻĻāĻžāύ

  1. āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϟāĻŋāĻ• āϤ⧁āϞāύāĻž: āϤāĻŋāύāϟāĻŋ āϏāĻŽāϝāĻŧ āϜāϟāĻŋāϞāϤāĻž āϝāĻĨāĻžāĻ•ā§āϰāĻŽā§‡ O(n log n), O(kn log n) āĻāĻŦāĻ‚ O(kn log n) + O(n log n) āϏāĻš k-d āĻ—āĻžāĻ› āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āĻŦāĻ°ā§āĻŖāύāĻž āĻāĻŦāĻ‚ āϤ⧁āϞāύāĻž
  2. āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āĻŦ⧇āĻžā§āϚāĻŽāĻžāĻ°ā§āĻ• āĻĒāϰ⧀āĻ•ā§āώāĻž: āφāϧ⧁āύāĻŋāĻ• āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽā§‡ āĻŦā§āϝāĻžāĻĒāĻ• āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āĻĒāϰ⧀āĻ•ā§āώāĻž, āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĄā§‡āϟāĻž āĻ¸ā§āϕ⧇āϞ (2^16 āĻĨ⧇āϕ⧇ 2^24 āύ⧋āĻĄ) āĻāĻŦāĻ‚ āĻŽāĻžāĻ¤ā§āϰāĻž (2-6 āĻŽāĻžāĻ¤ā§āϰāĻž) āϜ⧁āĻĄāĻŧ⧇
  3. āϏāĻŽāĻžāĻ¨ā§āϤāϰāĻžāϞāĻ•āϰāĻŖ āĻ¸ā§āĻ•āĻŋāĻŽ: O(kn log n) + O(n log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻĻā§āĻŦāĻŋ-āĻĨā§āϰ⧇āĻĄā§‡āĻĄ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ¸ā§āĻ•āĻŋāĻŽ āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦ āĻāĻŦāĻ‚ āĻāϰ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ
  4. āĻŽā§‡āĻŽāϰāĻŋ āĻāĻŦāĻ‚ āĻ•ā§āϝāĻžāĻļ⧇ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ: āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āĻŽā§‡āĻŽāϰāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧāϤāĻž āĻāĻŦāĻ‚ āĻ•ā§āϝāĻžāĻļ⧇ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻžāϰ āĻ—āĻ­ā§€āϰ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ, āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ⧇āϰ āĻŽā§‚āϞ āĻ•āĻžāϰāĻŖ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāĻž
  5. āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āύāĻŋāĻ°ā§āĻĻ⧇āĻļāύāĻž: āĻĒāϰ⧀āĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• āĻĢāϞāĻžāĻĢāϞ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋāϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āϏ⧁āĻĒāĻžāϰāĻŋāĻļ

āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āĻŦāĻŋāĻŦāϰāĻŖ

āĻ•āĻžāĻœā§‡āϰ āϏāĻ‚āĻœā§āĻžāĻž

āχāύāĻĒ⧁āϟ: k-āĻŽāĻžāĻ¤ā§āϰāĻŋāĻ• āĻĄā§‡āϟāĻž āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āϏ⧇āϟ, āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡ k āϟāĻŋ āϏāĻŽāĻ¨ā§āĻŦāϝāĻŧ āĻŽāĻžāύ āϰāϝāĻŧ⧇āϛ⧇ āφāωāϟāĻĒ⧁āϟ: āϏ⧁āώāĻŽ k-d āĻ—āĻžāĻ›, āĻĻāĻ•ā§āώ āĻ¸ā§āĻĨāĻžāύ āĻĒā§āϰāĻļā§āύ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž: āĻ—āĻžāϛ⧇āϰ āϏāĻ¨ā§āϤ⧁āϞāύ āĻŦāϜāĻžāϝāĻŧ āϰāĻžāĻ–āĻž, āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āϏāĻŽāϝāĻŧ āϜāϟāĻŋāϞāϤāĻž āĻšā§āϰāĻžāϏ āĻ•āϰāĻž

āϤāĻŋāύāϟāĻŋ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ

1. O(n log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ

  • āĻŽā§‚āϞ āϧāĻžāϰāĻŖāĻž: "āĻŽāĻ§ā§āϝāĻŽāĻžāϰ āĻŽāĻ§ā§āϝāĻŽāĻž" (median of medians) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž
  • āĻŦāĻŋāĻ­āĻžāϜāύ āĻ•ā§ŒāĻļāϞ: āĻŽā§‚āϞ āĻ…ā§āϝāĻžāϰ⧇āϤ⧇ āϏāϰāĻžāϏāϰāĻŋ āĻŦāĻŋāĻ­āĻžāϜāύ, āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋāϤ⧇ āĻŽāĻ§ā§āϝāĻŽāĻž āϖ⧁āρāĻœā§‡ āĻĒ⧇āϝāĻŧ⧇ āĻ…ā§āϝāĻžāϰ⧇ āĻŦāĻŋāĻ­āĻ•ā§āϤ āĻ•āϰāĻž
  • āϏ⧁āĻĒāĻžāϰāϕ⧀ āĻĄāĻŋāϜāĻžāχāύ: āϚāĻ•ā§āϰāĻžāĻ•āĻžāϰ āĻŦāĻŋāĻ¨ā§āϝāĻžāϏ⧇āϰ āϏ⧁āĻĒāĻžāϰāϕ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž (āϝ⧇āĻŽāύ x:y:z, y:z:x, z❌y) āϤ⧁āϞāύāĻžāϰ āϜāĻ¨ā§āϝ
  • āϏāĻŽāϝāĻŧ āϜāϟāĻŋāϞāϤāĻž: O(n log n), āĻ•āĻžāϰāĻŖ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ¸ā§āϤāϰ⧇āϰ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ O(n) āϏāĻŽāϝāĻŧ āύ⧇āϝāĻŧ, āĻŽā§‹āϟ log n āĻ¸ā§āϤāϰ

2. O(kn log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ

  • āĻŽā§‚āϞ āϧāĻžāϰāĻŖāĻž: āĻĒā§‚āĻ°ā§āĻŦ-āϏāĻžāϜāĻžāύ⧋ + āϏ⧂āϚāĻ• āĻ…ā§āϝāĻžāϰ⧇ āĻŦāĻŋāĻ­āĻžāϜāύ
  • āĻĒā§‚āĻ°ā§āĻŦ-āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϰāĻŖ: āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŽāĻžāĻ¤ā§āϰāĻž āĻŦāĻŋāϞāĻŽā§āĻŦ āϏāĻžāϜāĻžāύ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĒā§‚āĻ°ā§āĻŦ⧇ āϏāĻžāϜāĻžāύ⧋, k āϟāĻŋ āϏ⧂āϚāĻ• āĻ…ā§āϝāĻžāϰ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž
  • āĻŦāĻŋāĻ­āĻžāϜāύ āĻ•ā§ŒāĻļāϞ: āϏ⧂āϚāĻ• āĻ…ā§āϝāĻžāϰ⧇ āωāĻĒāĻžāĻĻāĻžāύ āĻ…āύ⧁āϞāĻŋāĻĒāĻŋ āĻ•āϰ⧇ āĻŦāĻŋāĻ­āĻžāϜāύ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ, āĻĒā§‚āĻ°ā§āĻŦ-āϏāĻžāϜāĻžāύ⧋ āĻ•ā§āϰāĻŽ āĻŦāϜāĻžāϝāĻŧ āϰāĻžāĻ–āĻž
  • āϏ⧁āĻŦāĻŋāϧāĻž: āĻŦāĻŋāĻ­āĻžāϜāύ⧇āϰ āĻĒāϰ⧇ āĻĒ⧁āύāσāϏāĻžāϜāĻžāύ⧋āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχ, āĻŦāĻšā§-āĻĨā§āϰ⧇āĻĄā§‡āĻĄ āϏāĻŽāĻžāĻ¨ā§āϤāϰāĻžāϞāĻ•āϰāϪ⧇āϰ āϜāĻ¨ā§āϝ āωāĻĒāϝ⧁āĻ•ā§āϤ
  • āϏāĻŽāϝāĻŧ āϜāϟāĻŋāϞāϤāĻž: O(kn log n) + O((k-1)n log n)

3. O(kn log n) + O(n log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ

  • āĻŽā§‚āϞ āϧāĻžāϰāĻŖāĻž: āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻŦāĻŋāĻ­āĻžāϜāύ, āĻĒā§āϰāĻ•ā§ƒāϤ āĻ…ā§āϝāĻžāϰ⧇ āĻ…āύ⧁āϞāĻŋāĻĒāĻŋ āĻāĻĄāĻŧāĻžāύ⧋
  • āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ…ā§āϝāĻžāϰ⧇: BN (BegiN) āĻāĻŦāĻ‚ SS (Subtree Size) āĻ…ā§āϝāĻžāϰ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŦāĻŋāĻ­āĻžāϜāύ āϤāĻĨā§āϝ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰāĻž
  • āĻŦāĻŋāĻ­āĻžāϜāύ āĻ•ā§ŒāĻļāϞ: āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ…ā§āϝāĻžāϰ⧇ āϏāĻ‚āĻļā§‹āϧāύ āĻ•āϰ⧇ "āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ" āĻŦāĻŋāĻ­āĻžāϜāύ, āĻĒā§āϰāĻ•ā§ƒāϤ āĻĄā§‡āϟāĻž āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āύāĻž āĻ•āϰ⧇
  • āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻĒāĻ°ā§āϝāĻžāϝāĻŧ: āĻļ⧇āώ⧇ āύāĻŋāĻŦāĻ¨ā§āϧāύ āϤāĻĨā§āϝ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ O(n log n) āϏāĻŽāϝāĻŧ⧇ āĻ—āĻžāĻ› āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ

āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ āωāĻĻā§āĻ­āĻžāĻŦāύ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ

  1. āϏ⧁āĻĒāĻžāϰāϕ⧀ āĻĄāĻŋāϜāĻžāχāύ: āϚāĻ•ā§āϰāĻžāĻ•āĻžāϰ āĻŦāĻŋāĻ¨ā§āϝāĻžāϏ⧇āϰ āϏ⧁āĻĒāĻžāϰāϕ⧀ (x:y:z, y:z:x, z❌y) āωāĻĻā§āĻ­āĻžāĻŦāύ⧀āĻ­āĻžāĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŦāĻšā§āĻŽāĻžāĻ¤ā§āϰāĻŋāĻ• āϤ⧁āϞāύāĻž āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻž, āĻŽāĻžāĻ¤ā§āϰāĻž āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ⧇āϰ āϜāϟāĻŋāϞāϤāĻž āĻāĻĄāĻŧāĻžāύ⧋
  2. āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻŦāĻŋāĻ­āĻžāϜāύ: O(kn log n) + O(n log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻŦāĻŋāĻĒ⧁āϞ āĻ…ā§āϝāĻžāϰ⧇ āĻ…āύ⧁āϞāĻŋāĻĒāĻŋ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻāĻĄāĻŧāĻžāϝāĻŧ, āϤāĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āφāϰāĻ“ āĻĻāĻ•ā§āώ
  3. āϏāĻŽāĻžāĻ¨ā§āϤāϰāĻžāϞāĻ•āϰāĻŖ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāύ: āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻĻā§āĻŦāĻŋ-āĻĨā§āϰ⧇āĻĄā§‡āĻĄ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ¸ā§āĻ•āĻŋāĻŽ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻž, āϏāĻžāĻŽāύ⧇āϰ āĻĻāĻŋāĻ• āĻāĻŦāĻ‚ āĻŦāĻŋāĻĒāϰ⧀āϤ āĻĻāĻŋāĻ• āĻĨ⧇āϕ⧇ āĻāĻ•āϝ⧋āϗ⧇ āĻ…ā§āϝāĻžāϰ⧇ āωāĻĒāĻžāĻĻāĻžāύ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāĻž

āĻĒāϰ⧀āĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• āϏ⧇āϟāφāĻĒ

āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ

  • āĻĒā§āϰāϏ⧇āϏāϰ: 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 āĻĨā§āϰ⧇āĻĄ) āĻāĻ•āχ āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ āĻāĻŦāĻ‚ āĻĄā§‡āϟāĻžāϏ⧇āĻŸā§‡ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āϤ⧁āϞāύāĻž

āĻĒāϰ⧀āĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• āĻĢāϞāĻžāĻĢāϞ

āĻĒā§āϰāϧāĻžāύ āĻĢāϞāĻžāĻĢāϞ

1. āϏāĻŽā§āĻĒāĻžāĻĻāύ āϏāĻŽāϝāĻŧ āϤ⧁āϞāύāĻž (2^24 āϟāĻŋ 3-āĻŽāĻžāĻ¤ā§āϰāĻŋāĻ• āϟ⧁āĻĒāϞ)

  • O(kn log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ: 3 āĻŽāĻžāĻ¤ā§āϰāĻžāϰ āύāĻŋāĻšā§‡ O(n log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āĻšā§‡āϝāĻŧ⧇ āωāĻ¨ā§āύāϤ
  • O(n log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ: 5 āĻŽāĻžāĻ¤ā§āϰāĻž āĻāĻŦāĻ‚ āϤāĻžāϰ āωāĻĒāϰ⧇ āφāϰāĻ“ āĻ­āĻžāϞ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž, āĻāĻŦāĻ‚ āϏāĻŽā§āĻĒāĻžāĻĻāύ āϏāĻŽāϝāĻŧ āĻŽāĻžāĻ¤ā§āϰāĻž āĻŦ⧃āĻĻā§āϧāĻŋāϰ āϏāĻžāĻĨ⧇ āĻŦ⧃āĻĻā§āϧāĻŋ āĻĒāĻžāϝāĻŧ āύāĻž
  • O(kn log n) + O(n log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ: āĻĒā§āϰāĻĨāĻŽ āĻĻ⧁āϟāĻŋ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āĻšā§‡āϝāĻŧ⧇ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝāĻ­āĻžāĻŦ⧇ āϧ⧀āϰ

2. āĻ¸ā§āϕ⧇āϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ

  • O(kn log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ: āϏāĻ°ā§āĻŦā§‹āĻ¤ā§āϤāĻŽ āĻ¸ā§āϕ⧇āϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ, 16 āĻĨā§āϰ⧇āĻĄā§‡ āĻĒā§āϰāĻžāϝāĻŧ 7 āϗ⧁āĻŖ āĻ¤ā§āĻŦāϰāĻŖ āĻ…āĻ°ā§āϜāύ āĻ•āϰāĻž
  • O(n log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ: āĻŽāĻ§ā§āϝāĻŽ āĻ¸ā§āϕ⧇āϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ, 16 āĻĨā§āϰ⧇āĻĄā§‡ āĻĒā§āϰāĻžāϝāĻŧ 5 āϗ⧁āĻŖ āĻ¤ā§āĻŦāϰāĻŖ āĻ…āĻ°ā§āϜāύ āĻ•āϰāĻž
  • O(kn log n) + O(n log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ: āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻ–āĻžāϰāĻžāĻĒ āĻ¸ā§āϕ⧇āϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻŦāĻŋāϞāĻŽā§āĻŦ āϏāĻžāϜāĻžāύ⧋ āĻ…āĻ‚āĻļ āϏāĻŽāĻžāĻ¨ā§āϤāϰāĻžāϞ āĻ•āϰāĻž āϝāĻžāϝāĻŧ

3. āĻĻā§āĻŦāĻŋ-āĻĨā§āϰ⧇āĻĄā§‡āĻĄ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž

āφāĻļā§āϚāĻ°ā§āϝāϜāύāĻ•āĻ­āĻžāĻŦ⧇, 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 āĻ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰāĻŋāϤ āĻšāϝāĻŧ

āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻ•āĻžāϜ

āϐāϤāĻŋāĻšāĻžāϏāĻŋāĻ• āωāĻ¨ā§āύāϝāĻŧāύ

  1. Bentley (1975): āĻĒā§āϰāĻĨāĻŽ k-d āĻ—āĻžāĻ› āϧāĻžāϰāĻŖāĻž āĻāĻŦāĻ‚ āĻŽā§ŒāϞāĻŋāĻ• āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻĒāĻĻā§āϧāϤāĻŋ āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦ āĻ•āϰāĻž
  2. Blum et al. (1973): āĻŽāĻ§ā§āϝāĻŽāĻžāϰ āĻŽāĻ§ā§āϝāĻŽāĻž āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ, O(n log n) āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž
  3. Friedman et al. (1977): āĻŦ⧈āϚāĻŋāĻ¤ā§āĻ°ā§āϝ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻŽāĻžāĻ¤ā§āϰāĻž āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•ā§ŒāĻļāϞ āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦ āĻ•āϰāĻž
  4. Procopiuc et al. (2003): āĻĒā§‚āĻ°ā§āĻŦ-āϏāĻžāϜāĻžāύ⧋ āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āĻ…āĻ¨ā§āĻŦ⧇āώāĻŖ

āĻāχ āĻĒ⧇āĻĒāĻžāϰ⧇āϰ āφāĻĒ⧇āĻ•ā§āώāĻŋāĻ• āϏ⧁āĻŦāĻŋāϧāĻž

  • āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϟāĻŋāĻ•āϤāĻž: āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰ⧇āϰ āĻŽāϤ⧋ āϤāĻŋāύāϟāĻŋ āĻĒā§āϰāϧāĻžāύ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āĻŦā§āϝāĻžāĻĒāĻ• āϤ⧁āϞāύāĻž
  • āφāϧ⧁āύāĻŋāĻ•āϤāĻž: āφāϧ⧁āύāĻŋāĻ• āĻŦāĻšā§-āϕ⧋āϰ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ⧇ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ
  • āĻ—āĻ­ā§€āϰāϤāĻž: āĻ•ā§āϝāĻžāĻļ⧇ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻžāϰ āĻĻ⧃āĻˇā§āϟāĻŋāϕ⧋āĻŖ āĻĨ⧇āϕ⧇ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āφāϚāϰāĻŖ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāĻž
  • āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ•āϤāĻž: āĻ¸ā§āĻĒāĻˇā§āϟ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāύāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻž

āωāĻĒāϏāĻ‚āĻšāĻžāϰ āĻāĻŦāĻ‚ āφāϞ⧋āϚāύāĻž

āĻĒā§āϰāϧāĻžāύ āωāĻĒāϏāĻ‚āĻšāĻžāϰ

  1. āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ:
    • āύāĻŋāĻŽā§āύ āĻŽāĻžāĻ¤ā§āϰāĻž (≤3): O(kn log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āϏāĻ°ā§āĻŦā§‹āĻ¤ā§āϤāĻŽ
    • āωāĻšā§āϚ āĻŽāĻžāĻ¤ā§āϰāĻž (â‰Ĩ5): O(n log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āφāϰāĻ“ āĻ­āĻžāϞ
    • āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ⧇ āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āϕ⧋āύ āϏ⧁āĻŦāĻŋāϧāĻž āύ⧇āχ
  2. āϏāĻŽāĻžāĻ¨ā§āϤāϰāĻžāϞāĻ•āϰāĻŖ: O(kn log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āϏāĻ°ā§āĻŦā§‹āĻ¤ā§āϤāĻŽ āϏāĻŽāĻžāĻ¨ā§āϤāϰāĻžāϞ āϏāĻŽā§āĻĒā§āϰāϏāĻžāϰāĻŖ āĻ¸ā§āϕ⧇āϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āϰāϝāĻŧ⧇āϛ⧇
  3. āĻ•ā§āϝāĻžāĻļ⧇ āϏāĻ‚āĻŦ⧇āĻĻāύāĻļā§€āϞāϤāĻž: āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āĻ•ā§āϝāĻžāĻļ⧇ āφāϚāϰāĻŖ āĻĻā§āĻŦāĻžāϰāĻž āĻŦ⧃āĻšā§Ž āĻĒāϰāĻŋāĻŽāĻžāϪ⧇ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻšāϝāĻŧ

āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž

  1. āĻĄā§‡āϟāĻž āĻŦāĻŋāϤāϰāĻŖ: āĻĒāϰ⧀āĻ•ā§āώāĻž āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϏāĻŽāĻžāύāĻ­āĻžāĻŦ⧇ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻ°ā§āϝāĻžāĻ¨ā§āĻĄāĻŽ āĻĄā§‡āϟāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āĻĒā§āϰāĻ•ā§ƒāϤ āĻĒā§āϰāϝāĻŧā§‹āϗ⧇ āĻĄā§‡āϟāĻž āĻŦāĻŋāϤāϰāĻŖ āĻ­āĻŋāĻ¨ā§āύ āĻšāϤ⧇ āĻĒāĻžāϰ⧇
  2. āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ āύāĻŋāĻ°ā§āĻ­āϰāϤāĻž: āωāĻĒāϏāĻ‚āĻšāĻžāϰ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻšāϤ⧇ āĻĒāĻžāϰ⧇
  3. āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ: āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜāĻĄ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āωāĻ¨ā§āύāϤ āĻšāϤ⧇ āĻĒāĻžāϰ⧇

āĻ­āĻŦāĻŋāĻˇā§āϝāϤ āĻĻāĻŋāĻ•āύāĻŋāĻ°ā§āĻĻ⧇āĻļāύāĻž

  1. āĻŽāĻ§ā§āϝāĻŽāĻž āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāύ: median of medians āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āĻ¸ā§āϕ⧇āϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āωāĻ¨ā§āύāϤ āĻ•āϰāĻž
  2. āĻ•ā§āϝāĻžāĻļ⧇-āĻŦāĻžāĻ¨ā§āϧāĻŦ āĻĄāĻŋāϜāĻžāχāύ: āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻ•ā§āϝāĻžāĻļ⧇ āϏāĻ‚āϘāĻ°ā§āώ āĻšā§āϰāĻžāϏ āĻ•āϰāĻžāϰ āĻĄā§‡āϟāĻž āĻ•āĻžāĻ āĻžāĻŽā§‹ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻž
  3. āĻ¸ā§āĻŦ-āĻ…āĻ­āĻŋāϝ⧋āϜāĻŋāϤ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ: āĻĄā§‡āϟāĻž āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻžāϰ āĻŦ⧁āĻĻā§āϧāĻŋāĻŽāĻžāύ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŦāĻŋāĻ•āĻžāĻļ āĻ•āϰāĻž
  4. GPU āĻ¤ā§āĻŦāϰāĻŖ: GPU āϏāĻŽāĻžāĻ¨ā§āϤāϰāĻžāϞāĻ•āϰāϪ⧇āϰ āϏāĻŽā§āĻ­āĻžāĻŦāύāĻž āĻ…āĻ¨ā§āĻŦ⧇āώāĻŖ āĻ•āϰāĻž

āĻ—āĻ­ā§€āϰ āĻŽā§‚āĻ˛ā§āϝāĻžāϝāĻŧāύ

āĻļāĻ•ā§āϤāĻŋ

  1. āϤāĻ¤ā§āĻ¤ā§āĻŦ āĻāĻŦāĻ‚ āĻ…āύ⧁āĻļā§€āϞāύ⧇āϰ āϏāĻŽāĻ¨ā§āĻŦāϝāĻŧ: āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϏāĻŽāϝāĻŧ āϜāϟāĻŋāϞāϤāĻž āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āύāϝāĻŧ, āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āĻĒāϰ⧀āĻ•ā§āώāĻžāĻ“ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻž
  2. āĻ—āĻ­ā§€āϰ āĻ•āĻžāϰāĻŖ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ: āĻ•ā§āϝāĻžāĻļ⧇ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āĻŦāĻŋāĻļā§āϞ⧇āώāϪ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āφāϚāϰāϪ⧇āϰ āĻŽā§‚āϞ āĻ•āĻžāϰāĻŖ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāĻž
  3. āωāĻšā§āϚ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āĻŽā§‚āĻ˛ā§āϝ: āĻĒā§āϰāĻ•ā§ƒāϤ āĻĒā§āϰāϝāĻŧā§‹āϗ⧇ āĻ¸ā§āĻĒāĻˇā§āϟ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāύāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻž
  4. āĻ•āĻ ā§‹āϰ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻĄāĻŋāϜāĻžāχāύ: āĻŦāĻšā§-āĻŽāĻžāĻ¤ā§āϰāĻŋāĻ•, āĻŦāĻšā§-āĻ¸ā§āϕ⧇āϞ āĻŦā§āϝāĻžāĻĒāĻ• āĻĒāϰ⧀āĻ•ā§āώāĻž
  5. āϕ⧋āĻĄ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ: āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ C++ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻž, āĻĒ⧁āύāĻ°ā§ā§ŽāĻĒāĻžāĻĻāύāϝ⧋āĻ—ā§āϝāϤāĻž āĻŦ⧃āĻĻā§āϧāĻŋ āĻ•āϰāĻž

āĻ…āĻĒā§‚āĻ°ā§āĻŖāϤāĻž

  1. āĻĄā§‡āϟāĻž āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž: āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻ°ā§āϝāĻžāĻ¨ā§āĻĄāĻŽ āϏāĻŽāĻžāύāĻ­āĻžāĻŦ⧇ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĄā§‡āϟāĻž āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž, āĻĒā§āϰāĻ•ā§ƒāϤ āĻĄā§‡āϟāĻžāϏ⧇āϟ āϝāĻžāϚāĻžāχāĻ•āϰāϪ⧇āϰ āĻ…āĻ­āĻžāĻŦ
  2. āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ āĻāĻ•āĻ•: āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽā§‡ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž, āωāĻĒāϏāĻ‚āĻšāĻžāϰ⧇āϰ āϏāĻ°ā§āĻŦāϜāύ⧀āύāϤāĻž āϏ⧀āĻŽāĻŋāϤ
  3. āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāύ āĻ—āĻ­ā§€āϰāϤāĻž: āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāύ āĻ…āĻ¨ā§āĻŦ⧇āώāĻŖ āϝāĻĨ⧇āĻˇā§āϟ āĻ—āĻ­ā§€āϰ āύāϝāĻŧ
  4. āϤāĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ• āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ: āĻ•ā§āϝāĻžāĻļ⧇ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻžāϰ āϤāĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ• āĻŽāĻĄā§‡āϞāĻŋāĻ‚āϝāĻŧ⧇āϰ āĻ…āĻ­āĻžāĻŦ

āĻĒā§āϰāĻ­āĻžāĻŦ

  1. āĻāĻ•āĻžāĻĄā§‡āĻŽāĻŋāĻ• āĻŽā§‚āĻ˛ā§āϝ: k-d āĻ—āĻžāĻ› āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻ—āĻŦ⧇āώāĻŖāĻžāϰ āϜāĻ¨ā§āϝ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻŦ⧇āĻžā§āϚāĻŽāĻžāĻ°ā§āĻ• āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϤāĻ°ā§āĻĻ⧃āĻˇā§āϟāĻŋ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻž
  2. āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āĻŽā§‚āĻ˛ā§āϝ: āĻĒā§āϰāĻ•ā§ƒāϤ āĻĒā§āϰāϝāĻŧā§‹āϗ⧇ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύāϕ⧇ āϏāϰāĻžāϏāϰāĻŋ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāύāĻž āĻĻ⧇āĻ“āϝāĻŧāĻž
  3. āĻĒāĻĻā§āϧāϤāĻŋāĻ—āϤ āĻ…āĻŦāĻĻāĻžāύ: āĻĄā§‡āϟāĻž āĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āĻŽā§‚āĻ˛ā§āϝāĻžāϝāĻŧāύ⧇āϰ āĻĒāĻĻā§āϧāϤāĻŋ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻž
  4. āĻĒ⧁āύāĻ°ā§ā§ŽāĻĒāĻžāĻĻāύāϝ⧋āĻ—ā§āϝāϤāĻž: āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āϕ⧋āĻĄ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ—āĻŦ⧇āώāĻ•āĻĻ⧇āϰ āϝāĻžāϚāĻžāχ āĻāĻŦāĻ‚ āϏāĻŽā§āĻĒā§āϰāϏāĻžāϰāĻŖ āϏāĻšāϜāϤāϰ āĻ•āϰāĻž

āĻĒā§āϰāϝāĻŧā§‹āĻ—āϝ⧋āĻ—ā§āϝ āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋ

  1. āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ āĻ—ā§āϰāĻžāĻĢāĻŋāĻ•ā§āϏ: 3D āĻĻ⧃āĻļā§āϝ⧇āϰ āĻ¸ā§āĻĨāĻžāύ āϏ⧂āϚāĻ• āĻāĻŦāĻ‚ āϏāĻ‚āϘāĻ°ā§āώ āϏāύāĻžāĻ•ā§āϤāĻ•āϰāĻŖ
  2. āĻŽā§‡āĻļāĻŋāύ āϞāĻžāĻ°ā§āύāĻŋāĻ‚: k āύāĻŋāĻ•āϟāϤāĻŽ āĻĒā§āϰāϤāĻŋāĻŦ⧇āĻļā§€ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āĻ¤ā§āĻŦāϰāĻŖ
  3. āϭ⧌āĻ—ā§‹āϞāĻŋāĻ• āϤāĻĨā§āϝ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻž: āĻ¸ā§āĻĨāĻžāύ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻļā§āύ āĻāĻŦāĻ‚ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ
  4. āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ: āĻŦāĻšā§-āĻŽāĻžāĻ¤ā§āϰāĻŋāĻ• āϏ⧂āϚāĻ• āĻ•āĻžāĻ āĻžāĻŽā§‹ āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ

āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ

āĻāχ āĻĒ⧇āĻĒāĻžāϰāϟāĻŋ āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇āϰ āĻŽā§‚āϞ āϏāĻžāĻšāĻŋāĻ¤ā§āϝ āωāĻĻā§āϧ⧃āϤ āĻ•āϰ⧇, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āϰāϝāĻŧ⧇āϛ⧇:

  • Bentley (1975): k-d āĻ—āĻžāϛ⧇āϰ āĻŽā§‚āϞ āĻĒ⧇āĻĒāĻžāϰ
  • Blum et al. (1973): āĻŽāĻ§ā§āϝāĻŽāĻž āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āϤāĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ• āĻ­āĻŋāĻ¤ā§āϤāĻŋ
  • Cao et al. (2020): āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦ
  • Brown (2015): āϞ⧇āĻ–āϕ⧇āϰ O(kn log n) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āĻ•āĻžāϜ

āϏāĻžāĻŽāĻ—ā§āϰāĻŋāĻ• āĻŽā§‚āĻ˛ā§āϝāĻžāϝāĻŧāύ: āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āωāĻšā§āϚ āĻŽāĻžāύ⧇āϰ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻĒ⧇āĻĒāĻžāϰ, āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϟāĻŋāĻ• āϤāĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ• āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻāĻŦāĻ‚ āĻĒāϰ⧀āĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• āϝāĻžāϚāĻžāχāĻ•āϰāϪ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡, k-d āĻ—āĻžāĻ› āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ⧇āϰ āϜāĻ¨ā§āϝ āĻŦ⧈āĻœā§āĻžāĻžāύāĻŋāĻ• āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āĻĒ⧇āĻĒāĻžāϰāϟāĻŋāϰ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻĄāĻŋāϜāĻžāχāύ āĻ•āĻ ā§‹āϰ, āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻ—āĻ­ā§€āϰ, āĻāĻŦāĻ‚ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝ āĻāĻ•āĻžāĻĄā§‡āĻŽāĻŋāĻ• āĻāĻŦāĻ‚ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āĻŽā§‚āĻ˛ā§āϝ āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āϝāĻĻāĻŋāĻ“ āĻĄā§‡āϟāĻž āĻŦ⧈āϚāĻŋāĻ¤ā§āĻ°ā§āϝ āĻāĻŦāĻ‚ āϤāĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ• āĻŽāĻĄā§‡āϞāĻŋāĻ‚ āĻĻāĻŋāĻ• āĻĨ⧇āϕ⧇ āωāĻ¨ā§āύāϤāĻŋāϰ āϜāĻžāϝāĻŧāĻ—āĻž āϰāϝāĻŧ⧇āϛ⧇, āϤāĻŦ⧇ āĻāϰ āĻ…āĻŦāĻĻāĻžāύ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āϝāĻĨ⧇āĻˇā§āϟ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝ, āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇āϰ āφāϰāĻ“ āĻ—āĻŦ⧇āώāĻŖāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĻ⧃āĻĸāĻŧ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āϛ⧇āĨ¤