How can I sort the polynomial by the degree of $x$

f1 = a x^2 + b x + c + x^3


(* a x^2+b x+c+x^3 *)

f1 /. x -> (x - a/3) // Expand


(* (2 a^3)/27-(a^2 x)/3-(a b)/3+b x+c+x^3 *)

I've tried this:

f1 /. x -> (x - a/3) // Expand // Collect[#, x] &


(* (2 a^3)/27+x (b-a^2/3)-(a b)/3+c+x^3 *)

f1 /. x -> (x - a/3) // Expand // Collect[#, x] & // PolynomialForm


(* (2 a^3)/27-(b a)/3+x^3+c+(b-a^2/3) x *)

• You can extract the coefficients of $x$ as a list using f1 /. x -> (x - a/3) // CoefficientList[#, x] &. Commented Nov 19, 2013 at 17:36

Try this formatting

OrderedForm[x_] := HoldForm[+##] & @@ (x^#1[[1]] #2 & @@@ CoefficientRules[#, x]) &;

f1 /. x -> (x - a/3) // OrderedForm[x]

x^3+(-(a^2/3)+b) x+((2 a^3)/27-(a b)/3+c)


The OP almost had it with attempting to use PolynomialForm[]. All that was missing is the use of an appropriate setting:
PolynomialForm[a x^2 + b x + c + x^3 /. x -> (x - a/3),

As is usual with *Form[] functions, this is only suitable for display/pretty printing.