1.这是一类经典的条件排序问题,它就是排序问题的小变形。具体到语法上就是一个结构体排序。
2.由于题目说明了数组长度n=106。所以就不要自己写冒泡排序等比较慢的排序了。在C++可直接使用STL中的排序函数函数:sort()。而且就算是你会手写快排,也不建议这么做。因为一方面是比赛的时候浪费时间,另一方面是STL中的sort加了很多优化,它比你手写的快排还会更快。
输入若干个int类型整数,将整数按照位数由大到小排序,如果位数相同,则按照整数本身从小到大排序。
例如,
输入:10 -3 1 23 89 100 9 -123
输出:-123 100 10 23 89 -3 1 9
输入的整数个数最多不超过106个。
在一行中输入若干个整数,整数之间用一个空格分隔。
在一行中输出排序好的整数,整数之间用一个空格分隔。
input1
10 -3 1 23 89 100 9 -123
ouput1
-123 100 10 23 89 -3 1 9
input2
1 -2 12
ouput2
12 -2 1