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

Solved: "Ports" Tab Not Visible in VS Code (WSL2)

None of the solutions I found on Reddit or GitHub worked, and most of the related GitHub issues were locked. So I'm documenting this here for future reference. Problem When using WSL2 in Visual Studio Code, the Ports tab—needed to access your application in Windows browsers like Chrome or Edge—doesn't appear. Even the Ports-related options are missing from the Command Palette. Solution After a lot of trial and error, here's what worked: Run npx serve in the VS Code terminal. It will output a URL such as http://localhost:3000/ . Click the link (or use the Follow Link option). This will open the app in your default browser. You may notice that it opens on a different port (for example, http://localhost:64198 ). At this point, the Ports tab becomes available in VS Code. After this initial trigger, the Ports tab seems to remain available in future VS Code...

Humble Award - Dr. A.N. Sreevatsan

Dr. A.N. Sreevatsan , ENT specialist located in Adyar, Chennai is one of the gems available in medicines. No assistants in his consulting room and he'd take at least 15mins for every patients. So far I have referred many and all are happy with his approach. Every wannabe doctor should visit him personally to understand his approach. I wish him to be more famous than now. Update (2010-11-21) : Added link to Google Map Keywords : Sreevatsan, Srivatsan, ENT, Adyar, Chennai, Hospital, Doctor

Afzal Guru might be innocent -- Savukku

I have stopped reading Savukku.net ( Once I called it as WikiLeaks of India ) for sometime-- when it started J.J. evangelism after the state elections. But, recently, when I checked, it seems to be back to its core journalism with good hidden truths on Pramakudi incident and articles on death penalty. Its article on Afzal Guru is first of its kind in media--especially when everyone is crying foul to hang him. In மரண தண்டனையை à®’à®´ிப்போà®®் 4 (Let's stop death penalty, Part 4) article, it highlights counter theory about police brutality. I have noted that majority of the information are already available on the book written by Afzal Guru available online from JusticeForAfzalGuru.org website--but not prominent in mainstream media.