sort -n only looks at the numeric value, if you use du with the -h option the G, M and k screw up the results, i.e. 350 kB is more than 5 GB because 350 > 5. Drop the -h and use sort -nr the r flag means reverse, i.e. from biggest to smallest.
Try du -d1 | sort -nr