1a) |
Essentially O(n2) runtime. (O(n*m) to be precise.) |
1b) |
Either use some sort of hashing function or sort the b_array and use binary search to cut down on the cost of looking up an element. In Perl, a hash is the natural approach.
my %b_value;
@b_value{@b_array}=();
my @c_array = grep exists $b_value{$_}, @a_array;
|
2) |
my $i;
while($i < $#array/2) {
my $copy = $array[$i];
$array[$i] = $array[-$i];
$array[-$i] = $copy;
++$i;
}
|
3) |
It requires a database capable of handling concurrent requests. They need to be transformed into some common query lanague, probably SQL. Results will be churned through a templating system depending on the desired result format. |
I think the questions are more than fair; in fact, they're close to trivial. I wouldn't want to employ anyone who fails on these. I remember reading about an interview question Michael Abrash uses:
Implement in-order walking of a binary tree. Do not use recursion.
Hardly surprising, though saddening, that as he noted, failure rates on this one are pretty spectacular.
Update: see ++Abigail-II's comment on excercise 1b.
Makeshifts last the longest.