编程的50种基础算法 一道java面试题,20亿数字的文本排序,如何取前100?
一道java面试题,20亿数字的文本排序,如何取前100?因为这是一个Java问题,所以这是典型的TOPK问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最
一道java面试题,20亿数字的文本排序,如何取前100?
因为这是一个Java问题,所以这是典型的TOPK问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最后100个元素就是结果。空间复杂度为k,时间复杂度为nlogk
1。工业上的大规模模型基本上都是logistic区域和线性区域,因此SGD和lbfgs的理解是非常重要的,而并行推导对于理解LR是如何并行的是非常重要的
2。其次,常用的机器学习算法,如SVM、gbdt、KNN等,应该了解其原理,能够在压力下快速响应。算法的优缺点和适应场景应基本清晰
3基本算法应熟练掌握数据结构、链表二叉树、快速行合并、动态返回等