- 论坛徽章:
- 0
|
1#!/usr/bin/perl
2use strict;
3use warnings;
4my @genes=qw(zgene1 agene2 mgene3 ygene4 sgene5 fgene6 lgene7);
5print "please enter your gene name here:\n";
6my $query=<STDIN>;
7chomp $query;
8my @sorted_genes=sort @genes;
9print @sorted_genes, "\n";
10my $foundflag=0;
11if (binary_search($query, @sorted_genes)) {
12 print "The gene query is known!\n";
13
14}else {
15 print "The gene query is not known!\n";
16}
17exit;
18sub binary_search {
19my($query, @array)=@_;
20@array or return 0;
21my $begin=0;
22my $end=$#array;
23while (($end-$begin)>=0) {
24 my $mid_point=int ((($end-$begin)/2)+$begin);
25 print $array[$mid_point], ":", "@array[$begin...$end]","\n";
26 my $test=$query cmp $array[$mid_point];
27 if ($test==0) {
28 return $query;
29 }
30 elsif ($test==-1){
31 $end=$mid_point-1;}
32 elsif {
33 $end=$mid_point+1;
34 }
35}
36return 0;
37}
|
|