2 replaced http://stackoverflow.com/ with https://stackoverflow.com/ edited May 23 '17 at 12:35 I briefly closed this question, then realized I had more to say than easily fits into the comments. This is documented behavior so in a way you have to learn to live with it, but the work-around is very simple: use SortBy SortBy[{13, Sqrt[157], Sqrt[163]}, N]  {Sqrt[157], Sqrt[163], 13}  This is far superior to using Sort with a second argument as it preserves the lower algorithmic complexity of the default sort rather than the pairwise comparison that is used with custom ordering functions. You can improve performance somewhat further if you are interested in only numeric order, or more specifically the default ordering of expressions as converted by N. This is done by using {N} as the second argument of SortBy which results in a stable sortstable sort. When using N (bare, without {}) ties will be broken using the default ordering function on the original expression. I briefly closed this question, then realized I had more to say than easily fits into the comments. This is documented behavior so in a way you have to learn to live with it, but the work-around is very simple: use SortBy SortBy[{13, Sqrt[157], Sqrt[163]}, N]  {Sqrt[157], Sqrt[163], 13}  This is far superior to using Sort with a second argument as it preserves the lower algorithmic complexity of the default sort rather than the pairwise comparison that is used with custom ordering functions. You can improve performance somewhat further if you are interested in only numeric order, or more specifically the default ordering of expressions as converted by N. This is done by using {N} as the second argument of SortBy which results in a stable sort. When using N (bare, without {}) ties will be broken using the default ordering function on the original expression. I briefly closed this question, then realized I had more to say than easily fits into the comments. This is documented behavior so in a way you have to learn to live with it, but the work-around is very simple: use SortBy SortBy[{13, Sqrt[157], Sqrt[163]}, N]  {Sqrt[157], Sqrt[163], 13}  This is far superior to using Sort with a second argument as it preserves the lower algorithmic complexity of the default sort rather than the pairwise comparison that is used with custom ordering functions. You can improve performance somewhat further if you are interested in only numeric order, or more specifically the default ordering of expressions as converted by N. This is done by using {N} as the second argument of SortBy which results in a stable sort. When using N (bare, without {}) ties will be broken using the default ordering function on the original expression. 1 answered Dec 21 '13 at 14:59 Mr.Wizard♦ 235k3030 gold badges488488 silver badges10931093 bronze badges I briefly closed this question, then realized I had more to say than easily fits into the comments. This is documented behavior so in a way you have to learn to live with it, but the work-around is very simple: use SortBy SortBy[{13, Sqrt[157], Sqrt[163]}, N]  {Sqrt[157], Sqrt[163], 13}  This is far superior to using Sort with a second argument as it preserves the lower algorithmic complexity of the default sort rather than the pairwise comparison that is used with custom ordering functions. You can improve performance somewhat further if you are interested in only numeric order, or more specifically the default ordering of expressions as converted by N. This is done by using {N} as the second argument of SortBy which results in a stable sort. When using N (bare, without {}) ties will be broken using the default ordering function on the original expression.