网易2017实习生招聘笔试题-Java开发工程师
有10000000条数据,用以下什么排序算法用时最短
A 堆排序
B 快速排序
C 希尔排序
D 归并排序
个人参考答案 A 堆排序
数据量为千万,设每个数据为整型int,即4字节,4000 0000字节约也就38Mb,暂时不用考虑内存问题即外排序(归并),且题目没限制内存。
具体参考http://bbs.csdn.net/topics/190116334
大多数商用软件都采用快排,因为它在一般情况下是排序最快的算法。 但快排最坏情况下是O(N²)
如果n比较大,改用堆排序,因为它能保证O(nlogn)的时间复杂度
欢迎讨论