1. 1000亿个数,找出其中最大的100个,分析时间复杂度
方案一:
利用堆排序的思想,首先选出100个数,建成一个小根堆,然后一个一个地读入数据,比较与根的大小,如果比根小,读下一个,如果比根大,替换根,并且调整堆
方案二:
将1000亿个数分成很多小组,每组选出前100个,然后再将选出的数据进行排序,有点类似于归并排序
1. 1000亿个数,找出其中最大的100个,分析时间复杂度
方案一:
利用堆排序的思想,首先选出100个数,建成一个小根堆,然后一个一个地读入数据,比较与根的大小,如果比根小,读下一个,如果比根大,替换根,并且调整堆
方案二:
将1000亿个数分成很多小组,每组选出前100个,然后再将选出的数据进行排序,有点类似于归并排序