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

Using Sodexo Meal Pass Card in BigBasket.com - How-to

How to Use Sodexo Meal Pass Card in Bigbasket.com Sodexo started to issue Smart Card similar to Credit Card--instead of their usual paper based vouchers. I was using Sodexo vouchers for longtime, but it was a big letdown when I can't get some of my unused vouchers renewed. And so, I was somehow happy with their new Meal Pass Card. But, again, it was a big letdown as I can't use it with BigBasket--where I usually use most of my meal coupon vouchers. SMS message from Sodexo on December 20, 2017 1:18 PM came as a big surprise, as I was waiting for this for longtime: Great News! Pay with your Sodexo Meal Card for food items ordered from Big Basket. Choose Sodexo in the payment section & pay on delivery. And so, this month, I tried to use my Sodexo Meal Pass Card in BigBasket. BigBasket website had not much information; I thought that I have to swipe my Meal Pass Card. Delivery person also didn't have much information; initially he was rejecting my Card! I trie...

Technology prediction for 2018

Bubbles of bitcoin, blockchain, machine learning, deep learning, artificial intelligence and more People usually appreciate me for my predictions on technologies. As I already noted our team will quickly hit the edge case for any use cases and that's supposed to be the reason for my better prediction rate. And so, here are my predictions… Bitcoin bubble When Bitcoin became talk of the town/industry, I informed my boss and colleagues that I find no real use case for this digital currency--except in underground markets like drugs, etc. In fiat currencies, there is at least a way to take legal route, in case, if you've transferred the money and not received the goods. But, in Bitcoin, this is not possible at all as it is not a legal currency. So, if there is no trust, the chances that other person can cheat you by not sending the goods and or not transferring bitcoins after receiving goods. My stand above vindicated by the article Ten years in, nobody has come up with a...

The Overrated Tamil Culture

Since the COVID period, I developed an interest in exploring old books from the 1700s to the 1900s through Google Books. I first focused on the celebrated Protestant missionary Ringeltaube, but over time, my curiosity expanded toward understanding the demographics and social practices of that era. In Tamil Nadu, what is often celebrated as "Tamil Culture" revolves around the practice of monogamy, known locally as à®’à®°ுவனுக்கு à®’à®°ுத்தி — meaning one woman for one man. Some even compare this tradition with practices in other states, claiming Tamil culture is especially unique. This sense of pride is particularly strong around Madurai, where people often refer to themselves as “pure Tamil” when compared with neighboring regions like Kanyakumari, whose people they call Malayalis. What’s striking, though, is that this proud image doesn’t always align with historical accounts. A book published in 1885 (I’ve chosen not to mention its title or link to avoid stirring controversy) ma...