Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@tomcha
Created March 16, 2019 16:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tomcha/f61588ea4e057bda598a5bdb3bbec54d to your computer and use it in GitHub Desktop.
Save tomcha/f61588ea4e057bda598a5bdb3bbec54d to your computer and use it in GitHub Desktop.
binary_search2
#!/usr/bin/env perl
use strict;
use warnings;
use feature 'say';
use DDP { deparse => 1 };
my @seeds;
for (1..100){
push(@seeds, int(rand(100)));
}
my %hash;
@seeds = grep{!$hash{$_}++}@seeds;
my $target = int(rand(100));
@seeds = sort {$a <=> $b} @seeds;
print join(',', @seeds) . "\n";
my $s = 0;
my $e = (scalar @seeds) - 1;
my $i;
while ($s <= $e){
$i = $s + int(($e - $s + 1) / 2);
if ($seeds[$i] == $target){
print "$target found at $i\n";
exit;
} elsif ($seeds[$i] > $target){
$e = $i - 1;
} else {
$s = $i + 1;
}
}
print "$target not found\n";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment