
算法和数据结构
文章平均质量分 86
犀利的蛙
安安
展开
-
数据结构--简单链表
一、序言 数据结构在大学都学过,由于大学认识不够,对这个有点酱油了,很多东西都是知道其概念,当然基本的应用也会,但是偶尔的面试等一些地方的应用,还是不够,这里再复习一些知识,给大家分享,知识来源于数据结构的书和网上的东西。 二、抽象数据类型 ADT(abstract data type)是带有一组操作的的的一些对象的集合。对于集合的ADT,我的理解是:拥有...2014-05-06 18:06:30 · 206 阅读 · 0 评论 -
大数据高频词算法实战(一)
一、序言 我们群里发了了一个挑战,题目大概是:2亿随即字符串,在一个txt 文本里面,找出出现频率最高的前100 个字符串,双核CPU,4G 内存,当然JVM 只开了1G。 其实类似的题目,很多公司也都有了,但是可能思想说得多,实战稍微少点,这里我抽空也写了一种通用的,凡是上诉题目都可以按方法进行处理,也做可以做其他扩展和优化。 二、设计原理...2014-03-30 19:49:20 · 909 阅读 · 0 评论 -
排序算法(四)--快速排序
package sort;import java.util.Arrays;import java.util.Random;/** * 快速排序 * 复杂度:N^2 * 原理:1.任意选定一个元素key,然后将大于key 的元素放右边,小于key 的元素 放左边 * 2.将key左右两边元素分别看成一个新的数组,然后再用1 步骤方法,重复,直到只有一...2013-09-17 16:15:59 · 125 阅读 · 0 评论 -
排序算法(三)--选择排序
package sort;import java.util.Arrays;import java.util.Random;/** * 选择排序:复杂度N^2 * 原理: 1.默认从第一个数i开始,假设是最小数,赋值给一个变量tem * 2.用而二个开始和这个数比较,如果小于该数,则赋值给这个变量 * 3.循环第二层循环结束,就交...2013-09-12 14:02:14 · 111 阅读 · 0 评论 -
排序算法(二)--插入排序
/** * 插入排序 复杂度:N^2 * 原理:默认第一个元素为起始位置 从第二个元素开始向前比较,如果前一个元素小,则不移动位置,否则交换 一直重复比较,直到不再交换 * 比如:有a,b,c,d,e,f,g 士兵,然后a 站开始,让b 和a 比较,b>a 不变,b<a 交换 同理让c 和 b 比较,再和a 比...原创 2013-09-09 11:10:24 · 90 阅读 · 0 评论 -
排序算法(一)--冒泡排序
/** * 冒泡算法 复杂度:N^2 * 原理:相邻两个元素比较,大的一个后移 * 比如:站一排的士兵,从左第一个开始跟右边的比较,高就交换位置,然后左的第二个又与第三个比 较,类推 比如:水里面的气泡,大的肯定是浮水最快的 (见图) * * @author @Ran */public class Bubble extends AbstractSort<...2013-09-08 15:55:08 · 99 阅读 · 0 评论 -
排序算法(0)--初步设计
最近复习了下,基本算法,发现会写,但是在应用上还是不好,也就是说不知道在什么地方用什么武功最合适! 然后想写一个工具类,可以针对常用的东西进行排序,然后计算它们的效率问题: 1.首先我定义了一个接口:/** * 排序接口 * @author @Ran * */public interface Sort { // 基本排序方法 public <T ...2013-09-08 13:48:31 · 83 阅读 · 0 评论 -
大数据去除重复--实战(二)
关于上一篇数据去重复的问题,在结尾的时候提到,另一种思路:在url-->hashCode 根据范围写入文件的时候,不用迭代二分法,采用平均算法,也就是说根据url的大概行数,设置一个单位区间,循环遍历行的时候,根据hashCode 值,放入不同的空间,然后再放入内存去除重复,写入汇总文件。 去个例子,我文件数据2G,1.5亿行,自己设定一个区间...原创 2014-01-28 15:10:50 · 835 阅读 · 0 评论 -
大数据去除重复--实战(一)
最近快过年了,来了一个紧急任务,加班加点的一周,终于上线了。也没多少时间去研究出去重复数据的算法,上一篇文章的算法,理论是可以的!但是由于我采用的行迭代的方式,JVM 会出现栈的深度溢出,我就换了一种方式,这里再次介绍给大家: 回顾一下题目:超过内存限制的URL,去除重复数据! 我的方法是根据hashCode 范围进行分...原创 2014-01-25 13:09:15 · 3657 阅读 · 1 评论 -
hive udf 唯一bigInt 生成器
一、背景 mysql数据由于自增的bigint 主键,会插入更快,因为能持续往文件末尾插入嘛,因此需要这个东西。 然后呢,服务端有专门生产id的接口,但是数据中心批量插入,肯定会拉暴他们,不让我们一起玩,只能自己玩。 二、方案 1.redis 获取数据段,程序内部自增。 问题:要用外部redis麻烦,而且要持久化...2018-03-08 17:31:42 · 1180 阅读 · 0 评论