算法
文章平均质量分 90
yueyemaitian
这个作者很懒,什么都没留下…
展开
-
数据结构和算法学习
大学没有好好上机敲算法,虽然考试前一周多时间把教材从头至尾完整看了一遍,也基本理解了,但是没有好好去敲过最基本的数据结构和算法。毕业后又一个大学都过去了,没有认真再学习,工作中也没怎么写过,当然也不是完全没写过,还是写了个Huffman编码树和C4.5决策树展示算法的。忽然觉得还是需要学习下的,于是就捡起来吧。一边敲点网上面试题的实现,一边捡起数据结构和算法。就算工作中真的再也用不到,至少...原创 2011-09-25 00:23:21 · 66 阅读 · 0 评论 -
堆排序
堆排序算法,详细内容参考这里和这里,堆排序除了排序外,还可以用来从一堆数种选取top K(最大/小)个的对象/数字 以下是一个最小堆的实现代码,当然,也可以做最大堆用,T实现Comparable接口的时候,compareTo返回值颠倒下就行了。 package com.kingdee.gmis;/** * * @author hua_fan * */...原创 2011-09-25 01:39:21 · 62 阅读 · 0 评论 -
Top K堆实现
TOP K堆就是堆,只是TOP K堆只用维护固定数量的元素,每次加进来新的,都要判断是否替换掉堆顶元素,如果需要,则删除堆顶元素,放入新元素,并重新构造堆。可以参考这里 package com.kingdee.gmis.common;import java.util.Random;/** * * @author hua_fan * */publ...原创 2011-09-25 23:30:12 · 224 阅读 · 0 评论 -
提取出某日访问网站次数最多的那K个IP
提取出某日访问百度次数最多的那K个IP 基本思路:ip最多2^32个,放入内存也要40G,基本不现实。所以只有用外排序,把ip分割成到不同的小文件里,然后统计次数后,汇总。另外,ip本质就是一32bit的数值,不要拘泥于字符串表示的ip。思路也可参考此处问题一基于以上思路,看代码: package com.kingdee.gmis.mass.data.ips;imp...原创 2011-09-26 00:29:16 · 251 阅读 · 0 评论 -
提取出某日访问网站次数最多的那K个IP之并发版
前边提到了单线程的实现,这里贴出多线程版,此处主要用多线程去处理hash后的小文件: package com.kingdee.gmis.mass.data.ips;import static com.kingdee.gmis.mass.data.ips.MassIP.K10;import static com.kingdee.gmis.mass.data.ips.MassIP....原创 2011-10-22 23:00:35 · 150 阅读 · 0 评论 -
快速排序
package com.kingdee.gmis.algorithm;public class QuickSort2 { public void quickSort(int[] arrs) { quickSort(arrs, 0, arrs.length - 1); } private void quickSort(int[] arrs, int l, in...原创 2011-12-11 18:11:11 · 61 阅读 · 0 评论 -
归并排序
package com.kingdee.gmis.algorithm;public class MergeSort<T extends Comparable<T>> { public void mergeSort(T[] arrs) { this.mergeSort(arrs, 0, arrs.length - 1); } @Supp...原创 2011-12-11 21:08:15 · 55 阅读 · 0 评论