时间复杂度上应该都差不多,合为一组用堆排是n+100*log(n),分组的话也差不太多(n+100*(logn1+logn2+logn3+logn4+logn5)),归并虽然会慢一些,
但只有4次,基本上属于常数(引用8楼hikaliv的回复:引用7楼litaoye的回复:
元素个数少于100的组就全上吧,总之是4次归并。
引用6楼hikaliv的回复:
引用5楼litaoye的回复:
混在一起用nth_element获取第100个数,用堆排也可以,不过不用全排完,只要排出前100个。
也可以从每组中找出前100个,然后做4次归并排序!
不对。每组可不保证都大于100,应该是五组串行地遍历,并行会出问题。
嗯……又想了想,此法不错。可以保证稳定性。
不过串行遍历… |