Π’ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π°Π»ΠΈΡΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΠΎΡΡΠ΅Π·ΠΊΠΎΠ², ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ° Π½Π°Π»ΠΈΡΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π±Π΅Π· Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΊΠΎΠ½ΠΊΡΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΏΠ°ΡΡ ΠΎΡΡΠ΅Π·ΠΊΠΎΠ² ΠΈ Ρ.Π΄.
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°
- ΠΠ°ΠΈΠ²Π½ΡΠΉ - ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΡΠ΅Π· ΡΠΎ Π²ΡΠ΅ΠΌΠΈ, ΡΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ
O(n^2)
- ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π·Π°ΠΌΠ΅ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΡΠΌΠΎΠΉ, Π³Π΄Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΡΡΠ΅Π·ΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ B-Tree (2-3 Tree, Π½Π΅ B+ Tree), Π΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ -
O(n*log(n))
Π‘Π°ΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² service.cpp
ΠΠ°Π½Π½Π°Ρ ΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ
ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ
ΡΠ°ΠΉΠ»Π°Ρ
, Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ headers
.
-
ΡΠΊΠ»ΠΎΠΈΠ½ΡΡΠΉΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
git clone https://github.com/nol0n/segment_intersection.git
-
ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ build (Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ out-of-source build, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΠΏΠΊΠ° Ρ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊΠ°ΠΌΠΈ Π»Π΅ΠΆΠΈΡ ΡΡΠ΄ΠΎΠΌ Ρ ΠΏΠ°ΠΏΠΊΠΎΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ)
mkdir ..\build
-
ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ build
cd .\build
-
ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ΅ΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ (ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» mingw)
cmake ..\segment_intersection -G Ninja
-
ΡΠΎΠ±Π΅ΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ
cmake --build .
Π ΠΏΠ°ΠΏΠΊΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ_ΡΠ±ΠΎΡΠΊΠΈ\application
Π±ΡΠ΄Π΅Ρ seg_test
, ΠΏΡΠΈ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π΄Π²Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
ΡΠ΅ΡΡΠ°, Π³Π΄Π΅ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π°Π΅ΡΡΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ². Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ°ΠΉΠ»Ρ ΡΡΠ΄ΠΎΠΌ Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ.