随笔分类 - 算法
摘要:业务场景:对每个基站覆盖的栅格S下随机抽取N个栅格,S为很大的数据集且未知具体数量 在高德纳的计算机程序设计艺术中,有如下问题:可否在一未知大小的集合中,随机取出一元素?。或者是Google面试题: I have a linked list of numbers of length N. N is
阅读全文
摘要:什么是LRU LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高” 距离现在最早使用的会被我们替换掉。不够形象的话我们看下面的例子。 size=3的缓存淘汰实现: 在插入元素1的时候,
阅读全文
摘要:背景 我们以网络爬虫为例。网络间的链接错综复杂,爬虫程序在网络间“爬行”很可能会形成“环”。为了避免形成“环”,程序需要知道已经访问过网站的URL。当程序又遇到一个网站,根据它的URL,怎么判断是否已经访问过呢? 第一个想法就是将已有URL放置在HashSet中,然后利用HashSet的特性进行判断
阅读全文
摘要:k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚
阅读全文
摘要:冒泡排序(Bubble Sort) 实现 每一轮,从数组头部开始,每两个元素比较大小并进行交换,直到这一轮当中最大或最小的元素被放置在数组的尾部,然后不断地重复这个过程,直到所有元素都排好位置。其中,核心操作就是元素相互比较。 例题 给定数组 [2, 1, 7, 9, 5, 8],要求按照从左到右、
阅读全文