2017 © Pedro PelΓ‘ez
 

library binary-search

Binary Search Library for php

image

agentsib/binary-search

Binary Search Library for php

  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

binary-search

This is a fork of keepper/binary-search, the original maintainer does not continue maintenance., (*1)


Binary Search Library for php, (*2)

РСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ поиска Π½Π° PHP, (*3)

Π£ΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с большими Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π±Π΅Π· чтСния Ρ„Π°ΠΉΠ»Π° Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ., (*4)


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

1. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ

wget http://www.fms.gov.ru/upload/expired-passports/list_of_expired_passports.csv.bz2, (*5)

2. РаспаковываСм

bzip2 -d list_of_expired_passports.csv.bz2, (*6)

3. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ

sort list_of_expired_passports.csv > source.csv, (*7)

4. Консольная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для поиска просрочСнного Ρ„Π°ΠΉΠ»Π° Π² Π‘Π” Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… паспортов ЀМБ

touch fms.php, (*8)

Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ Ρ„Π°ΠΉΠ» fms.php пишСм простой ΠΊΠΎΠ΄, (*9)


include_once 'vendor/autoload.php'; if (count($argv) < 3) { // Π’Ρ‹Π²ΠΎΠ΄ справки print "Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ php5 test.php Ρ„Π°ΠΉΠ» искомая строка\n"; exit; } else { // Π‘Π΅Ρ€Π΅ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ с ΠΊΠΎΠΌΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки $filepath = $argv[1]; $pattern = $argv[2]; } // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ источник Π΄Π°Π½Π½Ρ‹Ρ… для поиска $dataSource = new \BinarySearch\DataSource\FileData($filepath); // Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ класс Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ поиска $searcher = new \BinarySearch\BinarySearch($dataSource); // Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ½ΠΆΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π»ΠΎΠ³Π³Π΅Ρ€ //$searcher->injectLogger(new \BinarySearch\ConsoleLog()); // ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ поиск ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² источники Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится искомоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ $position = $searcher->search($pattern); if ( is_null($position) ) { print 'НС Π½Π°ΠΉΠ΄Π΅Π½ΠΎ'."\n"; exit; } print 'НайдСно Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ: '.$position."\n"; // ИдСм Π½Π° ΡƒΠΊΠ°Π·Π°Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Π½Π°ΠΉΠ΄Π΅Π½ΠΎΠ΅ $dataSource->moveTo($position); print 'Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ['.$dataSource->getData().']'."\n";

5. ΠŸΡ€ΠΎΠ±ΡƒΠ΅ΠΌ (Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° source 1,2 Π“Π±)

5.1. На ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ:

time php5 ./test.php ./source.csv 5005,000435, (*10)

НС найдСно

real    0m0.095s
user    0m0.018s
sys     0m0.009s

5.2. На ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ:

time php5 ./test.php ./source.csv 0000,000435, (*11)

НайдСно Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ: 434
Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: [0000,000435]

real    0m0.104s
user    0m0.009s
sys     0m0.018s

The Versions

06/03 2018

dev-master

9999999-dev

Binary Search Library for php

  Sources   Download

GPL-3.0

The Requires

 

The Development Requires

by Andrew Kosov

06/03 2018

1.0.0

1.0.0.0

Binary Search Library for php

  Sources   Download

GPL-3.0

The Requires

 

The Development Requires

by Andrew Kosov