Binary search of an array : Array Search « Array « Perl

Home
Perl
1.Array
2.CGI
3.Class
4.Data Type
5.Database
6.File
7.GUI
8.Hash
9.Language Basics
10.Network
11.Regular Expression
12.Report
13.Statement
14.String
15.Subroutine
16.System Functions
17.Win32
18.XML
Perl » Array » Array Search 
Binary search of an array
   

for $i = 0; $i < 15; ++$i ) {
   $array$i * $i;   
}

print "Enter an integer search key: ";
chomp $searchKey = <STDIN> );

print "\n";                  

for $i = 0; $i < @array; ++$i ) {
   print $i < 10 "  $i " " $i ";
}

print "\n""-" * @array )"\n";

$found = 0;                  # search while !$found
$lowIndex = 0;               # start index for search
$highIndex = $#array;        # end index for search

while $lowIndex <= $highIndex && !$found ) {
   $middleIndex = $lowIndex + $highIndex 2;
   
   for $i = 0; $i < @array; ++$i ) {
      if $i < $lowIndex || $i > $highIndex ) {
         print "    ";
      }
      elsif $i == $middleIndex ) {
         print $array$i 10 "  $array[ $i ]*" " $array[ $i ]*";
      }
      else {
         print $array$i 10 "  $array[ $i ] " " $array[ $i ] ";
      }
   }

   print "\n";
   
   if $searchKey == $array$middleIndex ] ) {  # match
      $index = $middleIndex;
      $found = 1;
   }
   elsif $searchKey < $array$middleIndex ] ) {
      $highIndex = $middleIndex - 1;  # search low end of array
   }
   else {
      $lowIndex = $middleIndex + 1;   # search high end of array
   }
}

# display results
if $found ) {      # $found == 1
   print "\nFound $searchKey at subscript $index \n";
}
else {               # $found == 0
   print "\n$searchKey not found \n";
}

   
    
    
  
Related examples in the same category
1.Linear search of an array.
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.