LSD ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° - Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠ° Π²Ρ ΠΎΠ΄ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°Π΄Π°Π½ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°. ΠΡΠΈ lsd ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π²ΠΈΠ³Π°Π΅ΠΌΡΡ ΠΎΡ ΠΌΠ»Π°Π΄ΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΡΠ΄Π° ΠΊ ΡΡΠ°ΡΡΠ΅ΠΌΡ, Π³ΡΡΠΏΠΏΠΈΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΡΠΈΡΡΠ°ΠΌΠΈ Π² ΡΠ°Π·ΡΡΠ΄Π΅. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠΈΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ° ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΡΠ΅Ρ. ΠΠ°ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² Π³ΡΡΠΏΠΏΡ ΠΏΡΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ ΠΠ½Π°Π»ΠΈΠ· ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° LSD-ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ(n).docx
ΠΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°. ΠΡΡΡΡ ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· n ΡΠΈΡΠ΅Π», ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· d ΡΠ°Π·ΡΡΠ΄ΠΎΠ², ΡΠΈΡΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡ 0 Π΄ΠΎ k-1. ΠΠ»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ k ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎΠ΄ΡΡΡΡΠΎΠΌ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡ ΠΎΠ΄ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ O(n+k) Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΡΠΎΡ ΠΎΠ΄Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°Π·ΡΡΠ΄Π°, ΠΊΠΎΡΠΎΡΡΡ d, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² Π·Π° Π²ΡΠ΅ΠΌΡ O(d(n+k)).
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π² ΡΠ°ΠΉΠ»Π΅ lsd-sort.cpp
ΠΠ° Π²Ρ ΠΎΠ΄ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΏΠΎΠ΄Π°ΡΡΡΡ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· n ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π Π°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 50 Π΄ΠΎ 400. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠΌΠ΅Π΅Ρ 3 ΡΠ°Π·ΡΡΠ΄Π°.
Π ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΡΠ΄ΠΎΡΠΌΠΊΠΎΡΡΠΈ.
ΠΠ»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ C++ - rand(). ΠΠ»Ρ ΡΠ°Π·Π½ΡΡ n Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 10 Π΄ΠΎ 500 Ρ ΡΠ°Π³ΠΎΠΌ 20.**