Meshbeyn / Projects

FastBWT

FastBWT это сортировщик BWT, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΉ Π½ΠΎΠ²Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки ΠΏΡƒΡ‚Π΅ΠΌ склСивания частично сортированных ΠΎΡ‚Ρ€Π΅Π·ΠΊΠΎΠ². ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² 2 Ρ€Π°Π·Π° большС памяти ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ прямой сортировкой Π±Π»ΠΎΠΊΠ°, Π½ΠΎ Π·Π°Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ O(n*logn*logn) вмСсто O(n*n*logn). ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ BWT ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ сортируСт большиС Π±Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π½Π° Π±Π»ΠΎΠΊΠ°Ρ… с Π΄Π»ΠΈΠ½Ρ‹ΠΌΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ°Π΄Π°Ρ‚ΡŒ Π² сотни ΠΈ Π΄Π°ΠΆΠ΅ тысячи Ρ€Π°Π· ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с "ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΌΠΈ" Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ примСнСния BWT Π² областях, Π³Π΄Π΅ ΠΎΠ½ ΠΌΠΎΠ³ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½. Π”Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ "катастрофичСски Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…", ΠΊΠΎΠ³Π΄Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΏΠ°Π΄Π°Π΅Ρ‚. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ сортировки ΠΈ эта сортировка Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°ΠΆΠ΅ быстрСС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ

FastBWT ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡƒΡŽ .Net Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ.

ВСкущая вСрсия Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (0.3) Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄Π²Π΅ вСрсии сортировщика ΠΈ ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ€ΡΠΈΡŽ дСсортировщика. ΠŸΡ€ΠΈ запускС FastBWT ΠΊΠ°ΠΊ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сортировщик BWT_Medium_Sorter.

ИзмСнСния

ВСрсия 0.3 (Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ)

ΠŸΠ΅Ρ€Π²Π°Ρ опубликованная вСрсия.

BWT_Medium_Sorter ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Π΄Π²ΡƒΠ±Π°ΠΉΡ‚ΠΎΠ²ΡƒΡŽ ΠΊΠΎΡ€Π·ΠΈΠ½ΠΎΡ‡Π½ΡƒΡŽ сортировку, Ρ‡Ρ‚ΠΎ сократило врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° 15%-20%.

Π Π°Π±ΠΎΡ‚Π° с FastBWT ΠΊΠ°ΠΊ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ

Π€Π°ΠΉΠ» FastBWT.exe ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ своСму ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π΄Π΅Π» References. FastBWT ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ классы:

FastBWT.ASorter
Абстрактный супСркласс для всСх сортировщиков. Π’Π°ΠΊΠΆΠ΅ содСрТит статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для примСнСния сортированного индСкса.
FastBWT.BWT_Small_Sorter
Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ для ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ². ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π΄ΠΎ 2Π“, Π½ΠΎ эффСктивСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ², Π³Π΄Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ приносят Π²Ρ€Π΅Π΄. Π˜ΠΌΠ΅Π΅Ρ‚ смысл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот сортировщик, Ссли Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сотСн ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚.
FastBWT.BWT_Medium_Sorter
Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ для срСдних Π±Π»ΠΎΠΊΠΎΠ². ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π΄ΠΎ 2Π“. Для сортировки Π±Π»ΠΎΠΊΠΎΠ² большСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТныС конструкции, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ .Net Π½Π΅ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ массивы Π΄Π»ΠΈΠ½ΠΎΠΉ Π±ΠΎΠ»Π΅Π΅ 2Π“ элСмСнтов.
FastBWT.ADesorter
Абстрактный класс для всСх дСсортировщиков.
FastBWT.BWT_Small_Desorter
ДСсортировщик для ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ². ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π΄Π΅ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π΄ΠΎ 2Π“. Π’ настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅.
FastBWT.StatisticStep
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°, содСрТащая ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ сортировщиков ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС окончания ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ сортировки. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° одноврСмСнная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ², создайтС нСсколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ достаточно интСнсивно распараллСливаСт свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ запуск Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… сортировщиков ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ лишь Π·Π°ΠΌΠ΅Π΄Π»ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈ любом количСствС процСссорных ядСр. ОбъСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ памяти ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π²Π΅Π½ 9-11 Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ Π±Π»ΠΎΠΊΠ° ΠΈ зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сТатыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ, Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅Π·ΠΊΠΈΠΉ скачок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ памяти. ΠŸΡ€ΠΈ 16Π“ памяти Π²ΠΈΠ΄Π΅ΠΎ Ρ„Π°ΠΉΠ» Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 1,4Π“ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡƒΠΆΠ΅ Π½Π΅ удаСтся ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. 

Π Π°Π±ΠΎΡ‚Π° с FastBWT ΠΊΠ°ΠΊ с ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ

FastBWT ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΈΠ· скриптов ΠΈΠ»ΠΈ ΠΈΠ· "Π½Π΅ .Net" ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Если Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ входящий ΠΈΠ»ΠΈ исходящий Ρ„Π°ΠΉΠ», ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° соотвСтствСнно Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈΠ»ΠΈ записываСт Π² стандартный ΠΏΠΎΡ‚ΠΎΠΊ консоли. Π’ этом случаС нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, выводящиС Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π° экран. НС ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎΠΊΠ° ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ большС 2Π“: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, скорСС всСго выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈΠ»ΠΈ отсортируСт Π΅Π³ΠΎ Π½Π΅Π²Π΅Ρ€Π½ΠΎ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈ запускС нСсколько Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

Π€ΠΎΡ€ΠΌΠ°Ρ‚ статистики

Бтатистика Ρ€Π°Π·Π±ΠΈΡ‚Π° Π½Π° Π±Π»ΠΎΠΊΠΈ Step ΠΏΠΎ итСрациям сортировщика. КаТдая итСрация сортируСт индСксы Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹. ПослС сортировки Π½Π΅ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΌΡ‹Π΅ индСксы Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ (big) содСрТат большС 65536 индСксов. Π’Π°ΠΊΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг.

МСлкиС Π³Ρ€ΡƒΠΏΠΏΡ‹ (small) содСрТат ΠΎΡ‚ 2 Π΄ΠΎ 65535 индСксов. Π’Π°ΠΊΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ быстро ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎ.

Π’ΠΎΡ‡ΠΊΠΈ (points) содСрТат 1 индСкс ΠΈ большС Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (Duration) - количСство сСкунд, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ шага.

Буммарная статистика ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ. Буммарная Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (Total Duration)ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ шага ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ. Максимальная Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (Max Duration) ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ шага. ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡˆΠ°Π³Ρƒ, ΠΏΠΎΠΊΠ° всС сосСди Π½Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ, поэтому ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ шаг ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСкунд.

Π‘Ρ‚Ρ€ΠΎΡ‡ΠΊΠ° ПолноС ВрСмя (Total Time) ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ с Π½Π°Ρ‡Π°Π»Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сортировки Π΄ΠΎ получСния сортированного Π±Π»ΠΎΠΊΠ°. ВрСмя чтСния ΠΈ записи Π½Π΅ учитываСтся.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ сортировки Ρ„Π°ΠΉΠ»Π°

FastBWT.exe -bwt -ip -i d:\abc\file.txt -o file.bwt

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» d:\abc\file.txt, ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Ρ„Π°ΠΉΠ» file.bwt Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΈ вывСсти индСкс Π½Π° экран.

FastBWT.exe -bwtt -in -stat -i d:\abc\file.txt -o d:\abc\file.bw

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» d:\abc\file.txt, Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² имя Ρ„Π°ΠΉΠ»Π° стартовый индСкс ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Ρ„Π°ΠΉΠ» с ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΌΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ. НапримСр, Ссли стартовый индСкс Ρ€Π°Π²Π΅Π½ 12345, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сохранится Π² Ρ„Π°ΠΉΠ» d:\abc\file[12345].bwt. ПослС сортировки вывСсти статистику.

MyProg.exe | FastBWT.exe -bwt -ii > d:\abc\out.bwt

ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ MyProg.exe, ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈ индСкс Π² Ρ„Π°ΠΉΠ» d:\abc\out.bwt.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ дСсортировки Ρ„Π°ΠΉΠ»Π°

FastBWT.exe -ubwt -i d:\abc\file.bwt -o file.txt -id 12345

Π”Π΅ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» d:\abc\file.bwt Π² Ρ„Π°ΠΉΠ» d:\abc\file.txt ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ стартовый индСкс 12345.

FastBWT.exe -ubwt -i d:\abc\file[12345].bwt -o file.txt -in

Π”Π΅ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» d:\abc\file[12345].bwt, взяв индСкс ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Ρ„Π°ΠΉΠ» file.txt Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

FastBWT.exe -ubwt -ii < d:\abc\in.bwt | MyProg.exe

Π”Π΅ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» d:\abc\in.bwt, взяв индСкс ΠΈΠ· послСдних Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π±Π°ΠΉΡ‚ΠΎΠ² Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ MyProg.exe