Problem1310--高效排序

1310: 高效排序

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MB

Description

对于数组排序,最好的时间复杂度位N*log2(N)。这样一般的冒泡排序等算法都达不到这种效率。请编程实现对象数组的排序操作,要求数组元素可以是整数对象和Studnet类对象(包括字符串型的名字和日期型的生日两个属性,排序时可以指定按哪个属性排序),将来还可能增加其他数据类型。

1.基本要求:

完成对整数对象数组数组的统一程序格式的排序(2个测试用例)

2.扩展要求:

完成对整数对象数组的统一程序格式的高效排序(即达到N*log2(N)的时间复杂度,2个测试用例)

3.可选内容:

重载一个排序操作,增加学生对象,可以指定不同排序函数。(1个测试用例)

Input

第一行为一个整数T,10<=T<=10000,空格后为对象类型,第二行为所有对象数组数据,不考虑输入数据错误情况。例如:

10 Integer

5 8 7 6 3 12 19 22 25 99

又如:

10 Student

张三 1998 2 3 李四 2003 5 7 王五 2005 4 10 张修 1999 2 3 李文 2006 5 7 王二 2008 9 10 张个 1998 2 3 李过 2003 6 7 王武 2007 4 25 吴终 2007 3 6

Output

对对象数组排序后,输出数组内容:

以上2个测试用例的输出分别是:

3 5 6 7 8 12 19 22 25 99

张三 1998 2 3 张个 1998 2 5 张修 1999 2 3 李四 2003 5 7 李过 2003 6 7 王五 2005 4 10 李文 2006 5 7 吴终 2007 3 6 王武 2007 4 25 王二 2008 9 10(按生日排序)

Sample Input Copy

10 Integer
3781 2836 6246 7117 7565 4149 6662 1150 9569 1622
如果是Student对象数组,第一行后面的Integer换成Student name或者Student birthday表明按那个关键字排序

Sample Output Copy

1150 1622 2836 3781 4149 6246 6662 7117 7565 9569

Source/Category