java編程 一道java面試題,20億數(shù)字的文本排序,如何取前100?
一道java面試題,20億數(shù)字的文本排序,如何取前100?因?yàn)檫@是一個(gè)Java問(wèn)題,所以這是典型的TOPK問(wèn)題。首先取前100個(gè)數(shù)字構(gòu)建一個(gè)最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時(shí)調(diào)整堆。堆中最
一道java面試題,20億數(shù)字的文本排序,如何取前100?
因?yàn)檫@是一個(gè)Java問(wèn)題,所以這是典型的TOPK問(wèn)題。首先取前100個(gè)數(shù)字構(gòu)建一個(gè)最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時(shí)調(diào)整堆。堆中最后100個(gè)元素就是結(jié)果。公共類快速排序{Public static void main(string[]args){int[]array={
9,
8,
7,
6,
5,
4,
3,
2,
1,0,-1,-2,-3}系統(tǒng)輸出打?。ā芭判蚯埃骸保〢rrayUtils.printArray(數(shù)組)快速排序(數(shù)組)系統(tǒng)輸出打印(“排序后:”)ArrayUtils.printArray(數(shù)組)}公共靜態(tài)void快速排序(int[]數(shù)組){子快速排序(數(shù)組,0數(shù)組長(zhǎng)度-1)}私有靜態(tài)void子快速排序(int[]array,int start,int end){if(array==null | |(end-start 1)