@Ilya: As I said in my earlier post, 
https://groups.google.com/d/msg/algogeeks/QyNBGrMHaCs/evd8iLvP2CUJ, use a 
radix sort. It is O(n) in time, and has an O(n) space requirement.
 
Dave

On Sunday, April 22, 2012 6:55:03 PM UTC-5, Ilya Albrekht wrote:

> I'm not aware of any O(n) sort algorithms. Any (known) sort algorithm can 
> have O(n) iff array is already sorted - kinda trivial case.
>
> So sort will not work for this task...
>
> On Wednesday, 18 April 2012 06:41:38 UTC-7, Dave wrote:
>>
>> @Viharri: A solution seems to require an O(n) sorting algorithm, and 
>> since sorting by comparison is O(n log n), the algorithm must use one of 
>> the other types of O(n) sorting algorithms. Since the data are not integers 
>> in a bounded range, I suggest using a radix sort, carrying along an array 
>> of indices. I.e., form an array of indices {0, 1, 2, ..., n-1} and perform 
>> the same data movements on it as on the original data. When the original 
>> data are sorted, then the array of indices will be the desired result.
>>  
>> Dave
>>
>> On Wednesday, April 18, 2012 8:07:33 AM UTC-5, VIHARRI wrote:
>>
>>> Can anybody give an O(n) algorithm for the following problem.
>>>
>>> Suppose if we have an array, I would like to construct an array with the 
>>> elements which specify their corresponding position in the sorted array.
>>>
>>> For example if the array is { 0.87, 0.04, 0.95, 0.12, 0.36 } then the 
>>> sorted array would be { 0.04, 0.12, 0.36, 0.87, 0.95 }.
>>> Then output array would be {3, 0, 4, 1, 2 }.
>>>
>>> Hope I'm clear...
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/algogeeks/-/i4ttCNNP1LMJ.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to