編程的50種基礎(chǔ)算法 一道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é)果??臻g復(fù)雜度為k,時(shí)間復(fù)雜度為nlogk
1。工業(yè)上的大規(guī)模模型基本上都是logistic區(qū)域和線性區(qū)域,因此SGD和lbfgs的理解是非常重要的,而并行推導(dǎo)對(duì)于理解LR是如何并行的是非常重要的
2。其次,常用的機(jī)器學(xué)習(xí)算法,如SVM、gbdt、KNN等,應(yīng)該了解其原理,能夠在壓力下快速響應(yīng)。算法的優(yōu)缺點(diǎn)和適應(yīng)場(chǎng)景應(yīng)基本清晰
3基本算法應(yīng)熟練掌握數(shù)據(jù)結(jié)構(gòu)、鏈表二叉樹(shù)、快速行合并、動(dòng)態(tài)返回等