自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一角残叶的博客

人生如逆旅,我亦是行人

  • 博客(34)
  • 资源 (6)
  • 论坛 (1)
  • 收藏
  • 关注

原创 常用算法时间复杂度表

1 常用算法时间复杂度来源: http://www.bigocheatsheet.com/1.1 常用数据结构算法复杂度1.2 常用排序算法复杂度

2019-02-14 16:58:31 777

原创 Spark SQL作为计算引擎去操作hive的注意事项

1 Spark SQL作为计算引擎去操作hive的注意事项1.要配置 hive.metastore.uris,启动 metastore 服务1. hive --service metastore -p 9083 &2. hive --service metastorehive-site.xml,core-site.xml,hdfs-site.xml 放入到Spark的con...

2019-02-26 23:28:04 721

原创 Spark电商用户行为分析(9)—— 工厂模式和 DAOFactory开发,json 数据格式和 fastjson 介绍

1 工厂模式如果没有工厂模式,可能会出现的问题:ITaskDAO接口和TaskDAOImpl实现类;实现类是可能会更换的;那么,如果就使用普通的方式来创建DAO,比如ITaskDAO taskDAO = new TaskDAOImpl(),那么后续,如果你的TaskDAO的实现类变更了,那么就必须在程序中,所有出现过TaskDAOImpl的地方,去更换掉这个实现类。这是非常非常麻烦的。如果说T...

2019-02-24 10:23:46 118

原创 Spark电商用户行为分析(8)——JDBC辅助组件开发,JavaBean,DAO模式

1

2019-02-24 09:29:55 115

原创 Spark电商用户行为分析(7)—— 内部类和匿名内部类

1 内部类内部类,顾名思义,就是包含在外部类中的类,就叫做内部类。内部类有两种,一种是静态内部类,一种是非静态内部类。public class School { private static School instance = null; static class Teacher {}}public class School { private String name; ...

2019-02-22 12:22:44 195

原创 Spark电商用户行为分析(6)——单例设计模式

1 单例设计模式/* * 自己定义的类,默认情况下,外界代码可以随意创建多个实例,但是有些时候,不希望外界随意创建实例, * 在整个程序运行期间,只有一个实例 * * 实现单例模式,要点: * 1. 类的构造方法必须是 private * * 2. 外界代码要获取类的实例,不能够随意创建,只能通过调用类的静态方法去获取类的实例; * * 3. 所以类必须有一个静态方法,ge...

2019-02-22 11:04:18 183

原创 Spark电商用户行为分析(5)—— 数据库连接池

1 数据库连接池1.1 直接连接数据库每一次java程序要在MySQL中执行一条SQL语句,那么就必须建立一个Connection对象,代表了与MySQL数据库的连接。然后在通过连接发送了你要执行的SQL语句之后,就会调用Connection.close()来关闭和销毁与数据库的连接。为什么要立即关闭呢?因为数据库的连接是一种很重的资源,代表了网络连接、IO等资源。所以如果不使用的话,就需要...

2019-02-22 10:37:02 466

原创 Spark电商用户行为分析(4)—— coding开发(1)

1 配置管理组件 ConfigurationManager 开发2 JDBC 原理介绍和增删改查2.1 JDBCJava Database Connectivity, Java数据库连接技术JDBC 只是代表了 JDK 提供的一套面向数据库的接口,意义在于通过接口统一了Java 程序对各种数据库的访问规范;数据库厂商提供JDBC驱动;2.2 JDBC 使用过程加载驱动类, Cl...

2019-02-22 10:18:49 314

原创 Spark电商用户行为分析(3)—— 基于IDEA 新建 Maven 工程

1 基于 IDEA 新建 Maven 工程pom 文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaL...

2019-02-21 14:41:59 173

原创 Spark电商用户行为分析(2)——用户访问 session 分析

1 用户访问 session 分析模块介绍可以根据使用者指定的某些条件,筛选出指定的一些用户(有特定年龄、职业、城市);对这些用户在指定日期范围内发起的session,进行聚合统计,比如,统计出访问时长在0~3s的session占总session数量的比例;按时间比例,比如一天有24个小时,其中12:00~13:00的session数量占当天总session数量的50%,当天总sessio...

2019-02-21 10:36:12 626

原创 Spark电商用户行为分析(1)—— 环境搭建

1 项目模块介绍用户访问session分析:该模块主要是对用户访问session进行统计分析,包括session的聚合指标计算、按时间比例随机抽取session、获取每天点击、下单和购买排名前10的品类、并获取top10品类的点击量排名前10的session。该模块可以让产品经理、数据分析师以及企业管理层形象地看到各种条件下的具体用户行为以及统计指标,从而对公司的产品设计以及业务发展战略做出...

2019-02-20 15:31:40 334

原创 哈希表(3)——哈希冲突处理

1 链地址法地址具有封闭性2 开放地址法2.1 开放地址法之线性探测法遇到哈希冲突: + 1hash(x) = x % 10 2号位置为空,31 向后挪一位2.2 开放地址法之平方探测法遇到哈希冲突:+1,+4,+9,+162.3 开放地址法之二次哈希遇到哈希冲突:使用另一个哈希函数3 再哈希法(Rehashing)4 Coalesced Hash...

2019-02-14 10:02:41 258

原创 哈希表(2)——哈希表动态空间处理和复杂度分析

1 哈希表复杂度分析(链地址法)一共有 M 个地址,如果放入的总元素个数是 N如果每个地址是链表,O(N / M)如果每个地址是平衡树:O(log( N / M))2 哈希表的动态空间处理当平均每个地址承载的元素超过一定程度,即扩容,N / M >= upperTol当平均每个地址承载的元素少过一定程度,即缩容, N / M < lowerTolHashTable...

2019-02-13 17:41:45 1654

原创 哈希表(1)——哈希冲突处理 和实现自定义的哈希表

1 哈希函数设计最简单的方法:模一个素数2 哈希冲突的处理—— 链地址法(Seperate Chaining)Java8 之前,每一个位置对用一个链表;Java8 开始,当哈希冲突达到一定程度,每一个位置从链表转成红黑树;3 实现自定义的哈希表HashTablepackage hashtable;import java.util.TreeMap;public ...

2019-02-13 16:35:38 232

原创 红黑树(3)——红黑树添加新元素 和 总结

1 2-3树添加新元素第一种:添加进 2 节点,形成一个3节点;第二种: 添加进 3 节点,暂时形成一个 4 节点;2 红黑树添加节点永远添加红色节点2.1 保持根节点是黑色,左旋转node.right = x.leftx.left = nodex.color = nodenode.color = RED// node x ...

2019-02-12 21:09:17 268

原创 红黑树(2)—— 红黑树颜色翻转和右旋转

3 颜色翻转和右旋3.1 颜色翻转(flipcolors)RBTree.javapackage tree;public class RBTree<K extends Comparable<K>, V> { private static final boolean RED = true; private static final bool...

2019-02-12 19:32:03 447

原创 红黑树(1)—— 红黑树和 2-3 树

1 红黑树介绍1.1 红黑树性质每个节点是黑色或者红色;根节点是黑色;每一个叶子节点(最后的空节点)是黑色;如果一个节点是红色的,那么他的孩子节点都是黑色的;从任意一个节点到叶子节点,经过的黑色节点是一样的;2 2-3树满足二分搜索树的基本性质节点可以存放一个元素或者两个元素每个节点有 2 或者 3 个孩子2-3树 是绝对平衡的树(从根节点到任意一个叶子节点所经过的节点...

2019-02-12 16:50:02 128

原创 平衡树和 AVL (4) ——基于AVL树的集合和映射

1 基于AVL树的集合和映射Map.javapackage tree;public interface Map<K, V> { void add(K key, V value); V remove(K key); boolean contains(K key); V get(K key); void set(K key, V...

2019-02-11 14:39:22 80

原创 平衡树和 AVL (3) —— AVL 树删除节点

1 平衡树删除节点AVLTree.javapackage avltree;import java.util.ArrayList;public class AVLTree<K extends Comparable<K>, V> { public class Node { public K key; public V ...

2019-02-11 10:49:28 383

原创 平衡树和 AVL (3) —— 旋转操作(LR,RL)

1 LR先对 x 进行左旋转,整棵树就转化为 LL 的情况2 RL先对 x 进行右旋转,转化成了 RR 的情况3 AVLTree.javapackage avltree;import java.util.ArrayList;public class AVLTree<K extends Comparable<K>, V> { pub...

2019-02-11 10:18:10 251

原创 平衡树和 AVL (2) —— 旋转操作(LL,RR)

1 右旋转左子树的高度比右子树的高度高,并且高度差比 1 大。同时它的左孩子也是,左子树高度大于等于右子树;x.right = yy.left = T32 左旋转插入的元素在不平衡的节点的右侧的右侧;y 的右子树的高度值比左子树高度值大于 1T4 < y < T3 < x < T1 < z < T2x.left = yy.r...

2019-02-11 10:00:26 155

原创 平衡树和 AVL (1) —— 二分搜索树的性质和平衡性的检查

1 平衡二叉树对于任意一个节点,左子树和右子树的高度差不能超过1;平衡二叉树的高度和节点数量的关系是 O(logn)标注节点高度(棕色)计算平衡因子 = 左子树和右子树高度之差(绿色)2 检查二分搜索树的性质和平衡性AVLTree.javapackage avltree;import java.util.ArrayList;public class AVLTr...

2019-02-10 09:43:41 139

原创 Trie字典树(1)—— 字典树查询

1 Trie 介绍1.1 字典如果有 n 个条目,使用树结构,查询的时间复杂度是 O(logn);如果有100 万个条目(2^20),logn 大约数201.2 Trie查询每个条目的时间复杂度和字典中的条目总数无关;时间复杂度是 O(w),w 是查询单词的长度;1.3 Trie 的查询Trie.javapackage tree;import java.util....

2019-02-09 15:44:04 183

原创 线段树篇(2)—— 线段树的区间查询

1 线段树的区间查询SegmentTree.java// 在以 treeIndex 为根的线段树中[l,r] 的范围里,搜索区间 [queryL,queryR] 的值 private E query(int treeIndex, int l, int r, int queryL, int queryR) { if (l == queryL && r...

2019-02-08 22:12:38 69

原创 线段树篇(1)—— 创建线段树

1 线段树(区间树)(Segment Tree)线段树不是完全二叉树线段树是平衡二叉树;平衡二叉树:最大深度和最小深度只差最多为1;1.1 为何使用线段树对于有些问题,关注的是线段(区间)1.2 操作更新: 更新区间中一个元素或者一个区间的值;查询一个区间【i,j】的最大值,最小值或者区间数字和;1.3 如果区间有 n 个元素,数组表示需要有多少节点?0层 - 1 ...

2019-02-08 18:43:27 277

原创 优先队列和堆篇(3)——借助堆实现优先队列

1 借助堆实现优先队列Queue.javapackage heap;public interface Queue<E> { int getSize(); boolean isEmpty(); void enqueue(E e); E dequeue(); E getFront();}MaxHeap.javapacka...

2019-02-07 19:16:48 113

原创 优先队列和堆篇(2)—— 二叉堆

1

2019-02-07 17:08:22 72

原创 优先队列和堆篇(1)—— 二叉堆介绍

1 优先队列堆在最差的情况下也是 O(logn)入队出队普通线性结构O(1)O(n)顺序线性结构O(n)O(1)堆O(logn)O(logn)2 堆的基础表示—— 二叉堆二叉堆是一棵完全二叉树完全二叉树:把元素顺序排列成树的形状。(把元素一层一层排列直到放不下为止)二叉堆: 堆中某个节点的值总是不大于其父节点的值。(根节点最大,这...

2019-02-07 10:37:42 330

原创 集合和映射(3)—— 基于链表和二分搜索树的映射的实现

1 基于链表的映射实现Map.javapackage setAndmap;public interface Map<K, V> { void add(K key, V value); V remove(K key); boolean contains(K key); V get(K key); void set(K key,...

2019-02-06 15:14:13 114

原创 集合和映射(2)——集合的时间复杂度分析

1 集合的时间复杂度分析LinkedListSetBSTSetaddO(n)O(h)containsO(n)O(h)removeO(n)O(h)

2019-02-05 11:02:48 181

原创 集合和映射(1)—— 基于二分搜索树和基于链表实现集合

1 基于二分搜索树的集合实现BST.javapackage tree;import java.util.LinkedList;import java.util.Queue;import java.util.Stack;/* * * 实现的二分搜索树不包含重复元素 * * 如果想包含重复元素,只需要定义: * 左子树小于等于节点,或者右子树大于等于节点 * */p...

2019-02-04 21:46:58 535

原创 二分搜索树篇(3)—— 删除二分搜索树的最大元素和最小元素,任意值

1 删除二分搜索树的最大元素和最小元素1.1 寻找最小节点 public E minimum() { if (size == 0) { throw new IllegalArgumentException("BST is empty"); } return minimum(root).e; } //...

2019-02-04 12:10:10 238

原创 二分搜索树篇(2)—— 二分搜索树前序非递归遍历+ 按层遍历

1

2019-02-02 10:48:22 259 3

原创 二分搜索树篇(1)—— 二分搜索树添加元素、递归遍历

1

2019-02-01 11:07:52 552

针对Android的Java基础学习

针对Android的Java基础学习,介绍了关于JAVA的基础知识和各种语法。

2014-06-29

Eclipse从入门到精通

Eclipse从入门到精通,详细介绍了Eclipse的基本操作。

2014-06-29

mfc编程基础

还在为mfc 而发愁吗? 本书带你走进mfc 的世界,领略C++编程的魅力,学习mfc 编程基础的知识。

2013-12-08

matlab信号处理

matlab信号处理,方便新手对matlab的入门和学习,不过对大家的英文水平有一定的要求。

2013-12-08

Python算法(英文)

Python版数据结构

2017-05-14

Python入门书籍

Python编程

2017-05-14

一角残叶的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除