Skip to main content

Interview question #2

This is related to PHP's array.

An array has number of elements. All elements are integers and unique, which means there is no repetitive integers.
(e.g.) $foo = array(7, 5, 9, 13, 2, 8);

You have to sort the array, provided:
  1. You should scan the elements only once.
  2. You're not allowed to compare the elements when sorting. (i.e., you're not supposed to use any comparison operators)
  3. Sorted resultant array may not be the source array.
How will you do that?

Comments

Anonymous said…
$foo = array(7, 5, 9, 13, 2, 8);

reset($foo);

$bar = array();
$barcount = 0;
while ($foo <> array()) {
$bartemp = min($foo);
$bar[$barcount] = $bartemp;
unset($foo[array_search($bartemp, $foo)]);
$barcount++;
}
print_r($foo); //empty
echo "\n";
print_r($bar); //sorted!
?>


Result:
$foo is Array
(
)

$bar is Array
(
[0] => 2
[1] => 5
[2] => 7
[3] => 8
[4] => 9
[5] => 13
)
Anonymous said…
$bar = $foo;
sort($bar);
reset($bar);
print_r($bar);
For comment#1:You are using min() which is again a comparison function. The answer is not that complex at all.

For comment#2:Are you kidding;)
Anonymous said…
http://us4.php.net/manual/en/language.operators.comparison.php
For comment#4:I meant that you're not allowed to compare the elements in anyway (using operators or functions). Probably I should have worded it better.
Anonymous said…
##Deadeasy##

Popular posts from this blog

Interview question #1

Since I have been asked to interview experienced PHP programmers, I was preparing few interview questions. I came to know, most of the people ask questions found in the Internet; most of them are like "What is the function used to connect MySQL DB in PHP". Personally, I don't like these types of questions; I'd thought the person must apply ideas what he was taught in colleges--finally I came out with one question: A product vendor has Quantity Vs. Price data like 1 -> Rs. 50 2 -> Rs. 95 3 -> Rs. 140 .... like upto 1 million data. He wants a system, which gives the price when the quantity is provided. For example, if you provide the quantity value as 2, then it should provide Rs. 95. How this system can be designed? As expected, all the people said about using database tables and quering on quantity. I have asked them to find out a system which doesn't use databases--provided the accuracy of the system may not be 100%--it may give at least 90% ac...

Open source resume templates with JSON-LD (SEO-friendly) support

I don't usually keep track of the projects that I worked on. I have been recently advised to keep resume updated with the projects list. And so I have searched for resume templates and tools. Indian resume Vs International resume During the process, I have found that there are vast differences between the format of Indian resumes and International resumes. Indian resumes are extremely verbose with number of projects, team size, client name, etc. whereas international format is more succinct and short. So I was kind of lost in the process in adopting the template. LinkedIn to the rescue? No. Unfortunately, LinkedIn format is "common" and is not easy to update. Moreover, these days LinkedIn has become signupware [sic] and so accessing resume is a nightmare. Enter JSON Resume JSON Resume is an awesome open source approach for creating resume. I accidentally came across while searching for JSON-LD format for resume. Couple of great features: Resume hosting (op...

Valen Smith, the English teacher videos are missing!

I vaguely remembered that sometimes around 2009, engVid on YouTube was very popular. I especially liked a teacher by name Valen Smith's videos. She was not only beautiful but also very good at explaining the English usage. I also vaguely remembered to check her channel ValenESL around 2015. But, not sure what happened to her or engVid, all her videos are sadly gone. I have also noted that many people on Twitter were asking the same. Not sure what happened. Some people seem to have reuploaded her videos and YouTube continuously removing them with a note "This video contains content from LearnVid, who has blocked it on copyright grounds." Strangely though, on Facebook, some people have managed to create a fake account using her old channel name ValenESL.