Re: sorting problem

*To*: mathgroup at smc.vnet.net*Subject*: [mg130648] Re: sorting problem*From*: Fred Simons <f.h.simons at tue.nl>*Date*: Sun, 28 Apr 2013 05:17:15 -0400 (EDT)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*Delivered-to*: l-mathgroup@wolfram.com*Delivered-to*: mathgroup-outx@smc.vnet.net*Delivered-to*: mathgroup-newsendx@smc.vnet.net*References*: <20130428045759.9057869D1@smc.vnet.net>

Here is one solution, assuming that all elements in your list distances are non-negative: In[1]:= distances={0,Sqrt[2],Sqrt[2],0,0,Sqrt[2],2,Sqrt[2]}; In[2]:= Table[Position[distances,x,1],{x, Union[distances]}] // Flatten Out[2]= {1,4,5,7,2,3,6,8} Regards, Fred Simons Eindhoven University of Technology Op 28-4-2013 6:57, S schreef: > Hello > > I need to sort a list in increasing magnitude. If two elements in the list are the same, the element which appears EARLIER in the list should appear first. Finally, I need the indices of the sorted list according to the above two rules. > > e.g. for input > distances = {0, Sqrt[2], Sqrt[2], 0, 0, Sqrt[2], 2, Sqrt[2]} > I need the answer to be > k={1,4,5,2,3,6,8,7} > > I tried the following commands: > > distances = {0, Sqrt[2], Sqrt[2], 0, 0, Sqrt[2], 2, Sqrt[2]} > Sorteddistances = Sort[distances, Less] > k = Ordering[distances] > > I get output k={1, 4, 5, 7, 2, 3, 6, 8}. > > However, I want the output k={1,4,5,2,3,6,8,7} > > Can someone please suggest how to do this. > > Thanks > > S >

**References**:**sorting problem***From:*S <dsalman96@gmail.com>