`
wbj0110
  • 浏览: 1554676 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
文章列表
第一部分:Top K 算法详解问题描述百度面试题:    搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。    假设目前有一千万个记录(这些查询串的重复度比较高,虽然总 ...
常用的算法的时间复杂度和空间复杂度   排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2)
大数据量实时统计排序分页查询的瓶颈不是函数(count,sum等)执行, 不是having, 也不是order by,甚至不是表join, 导致慢的原因就在于“数据量太大本身”   化整为零 就是将表划分为M份相互独立的部分,可以是分表,也可以是不分表但冗余一个取模结果字段 实际结果是不分表比分表更加灵活,只需稍加配置,就可以动态切分大表,随意更改M的大小。   将1条慢sql(大于30秒)拆分成为N条查询速度巨快的sql(单条sql执行时间控制在20毫秒以内) 然后再web应用中以适当的线程数去并发查询这些执行时间快的N条小sql再汇总结果  
分治策略是:对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。这种算法设计策略叫做分治法。     如果原问题可分割成k个子问题,1<k≤n ,且这些子问题都可解,并可利用这些子问题的解求出原问题的解,那么这种分治法就是可行的。由分治法产生的子问题往往是原问题的较小模式,这就为使用递归技术提供了方便。在这种情况下,反复应用分治手段,可以使子问题与原问题类型一致而其规模却不断缩小,最终使子问题缩小到很容易直接求出其解。这自然导致 ...
1.基本操作:    使用一个unsigned int变量来作为位容器。 2.操作符: |   按位或操作符:result=exp1|exp2;当exp1和exp2中对应位中至少有一个为1时,result中对应位为1,否则为0。 &  按位与操作符::result=exp1&exp2;当exp1和exp2中对应位全为1时,result中对应位为1,否则为0。 ^  按位异或或操作符:result=exp1^exp2;当exp1和exp2中对应位不相同时,result中对应位为1,否则为0。 ~  反转操作符:将位容器中的所有位都反转,1变为0,0变为1。 < ...
常用的排序算法:     冒泡序,快速排序,直接选择排序,堆排序,希尔排序,归并排序等;无指针分组排序算法     冒泡排序不适宜于逆序     快速排序算法能减少逆序时所消耗的扫描和数据交换次数;     堆排序对数据的有效性不敏感,适宜于较大的序列排序     直接插入算法排序对数据的有序性非常敏感,在最优情况下只需要经过n-1次比较,而最坏情况下需要n(n-1)/2次比较    希尔排序也是一种基于插入排序的算法,但能够改善整个排序性能    归并排序需要与待排序序列一样多的辅助空间,其时间复杂度固定为O(nlog n)   题目解析: 题目大意:移动公司需要对已经 ...
1. 什么是寻址空间 寻址空间一般指的是CPU对于内存寻址的能力。通俗地说,就是能最多用到多少内存的一个问题   2. 我们经常听说32位操作系统最多能用4G内存。大部分情况下,这个上限都达不到。例如我的机器,虽然是4G物理内存,但实际上识别的只有3G。有的朋友说是可以识别到3.2G或者3.5G不等,我想这跟人品是没有什么关系的     那么,这剩下的1个G左右的内存不是浪费了吗?可不是嘛,太心痛了。所有很多朋友都用一个软件将这部分内存转换为硬盘用
1 什么是cookie 浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接。因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知。为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息,因此人们昵称为“小甜饼”。cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段:Netscape Navigator使用一个名为cookies.txt本地文件保存从所有站点接收的Cookie信息;而IE浏览 ...
List commonList = new ArrayList();   if (commonList.size() > 3)//如果数组个数大于3个,则删掉后面的,只剩余前三个        {            for (int i = 3; i <commonList.size() ; i++)            {                commonList.remove(i);            }        } 上面写法不能正确执行达到以上需求,因为比如 i=3时,数组将位置为3的元素删除后,数组中的后面元素会依次前移,此时i=4,继续删除 ...
一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等。所访问的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及是一些通过加密方式传输,例如HTTPS。目前我们使用的浏览器处理这些情况都不会构成问题。不过你可能在某些时候需要通过程序来访问这样的一些页面,比如从别人的网页中“偷”一些数据;利用某些站点提供的页面来完成某种功能,例如说我们想知道某个手机号码的归属地而我们自己又没有这样的数据,因此只好借助其他公司已有的网站来完成这个功能,这个时候我们需要向网页提交手机号码并从返回的页面中解析出我们想要的 ...
Global site tag (gtag.js) - Google Analytics