自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 面试总结

今天面试了某电商公司数据开发,针对里面的部分问题,做个总结,顺带整理学习一波:1.编程题:n个数求topk和前序遍历的递归非递归版本2. hive中parquet格式的具体含义,与textfile比有什么不同,两者的适用场景有啥区别?3. 拉链表相关4. hive中并行执行 网上关于这些问题已经有很好的回答了,就不重复造轮子了。这里给出答案连接。剑指offer原题。http...

2018-09-06 09:04:03 293

转载 MR中Shuffle过程中sort总结

原文: http://blog.csdn.net/u013080251/article/details/60146294写在前面的话: 新学期开学想重新复习一下Hadoop的知识,不断更新自己的知识库,在今天晚上阅读的过程中发现,有人已经总结了Mapreduce在shuffle过程中sort的实施。我以前从来都没有深入探究过sort过程应用的算法,以及sort的次数。今天我将其总结一下: ...

2018-08-30 12:07:12 1522

原创 淘宝api

相近负责的项目,需要对接淘宝提供的 淘宝api,获取淘宝客的订单数据。在此过程中遇到了很多坑,特在此mark一下,可能对于一些大佬来说很简单,如果发现有错误欢迎指出。所有过程如下所示:基于Intellij IDEA 创建Maven项目将淘宝API依赖的jar包安装到本地maven仓库根据公开的请求实例编写java脚本,获取返回的订单数据(Jason格式)以javabean的形式解析js...

2018-07-28 17:48:50 9066 12

原创 数据库范式与反范式

最近涉及到设计和建立数仓表,数据总体划分为ods/fact/aggr/dws/rpt/dim层,具体结构如下图所示: 遵从设计规则:以星型模型为设计模式, 维度采用反范式化, 且维度数据要整个仓库可共用, 数据准确性要保证, 事实表允许冗余部分维度数据。针对其中几个地方,解释并mark一下。设计模式多维数据模型是最流行的数据仓库的数据模型,多维数据模型最典型的数据模式包括星型模式、雪...

2018-07-26 21:26:58 1139

转载 稳定排序与不稳定排序

这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的...

2018-07-17 11:20:18 11327 1

转载 HDFS原理综述篇

概述HDFS即Hadoop分布式文件系统,主要用于支持海量数据的分布式存储管理,适合一次写,多次读取数据的应用场景。在HDFS文件系统中有几个重要的守护进程协调的运行来提供服务:名称节点进程辅助名称节点进程数据节点进程 HDFS也是主从架构的。运行名称节点进程的服务器我们称之为主节点,运行数据节点进程的服务器称之为从节点。HDFS向外提供一个统一的文件系统命名空间,用户就像使用...

2018-06-28 18:48:50 261

转载 Spark源码之checkpoint方法解析

转载自:https://blog.csdn.net/do_yourself_go_on/article/details/74946288今天在阅读Spark源码的时候看到了checkpoint方法,之前也在处理数据的的时候用到过,但是没有深入理解这个方法,今天结合官方文档以及网上博客重新认识了一下这个方法,这里做个总结。主要从两个方面讲解: 1.官方对这个方法的解释 2.这个方法的使用...

2018-06-27 18:49:50 170

转载 OLTP和OLAP区别

转载自:https://blog.csdn.net/bitcarmanlee/article/details/51011515OLTP和OLAP的区别联机事务处理OLTP(on-line transaction processing) 主要是执行基本日常的事务处理,比如数据库记录的增删查改。比如在银行的一笔交易记录,就是一个典型的事务。 OLTP的特点一般有:1.实时性要求高。...

2018-06-20 11:27:55 2593

转载 Spark学习-Coalesce()方法和rePartition()方法

最近使用spark中遇到了重分区的问题,本文对下面三篇文章内容按照自己逻辑进行整理,mark下!!https://www.cnblogs.com/fillPv/p/5392186.htmlhttps://blog.csdn.net/do_yourself_go_on/article/details/74315834https://blog.csdn.net/u011981433/arti...

2018-06-06 22:26:51 21646 3

原创 全域哈希和完全哈希

看了MIT算法导论公开课关于全域哈希和完全哈希的内容,感觉很棒,因此在这里总结MARK一下全域哈希由来研究一个东西之前,我们首先要知道为什么要研究它,即全域哈希能解决普通哈希的什么问题?公开课上的例子:如果你和一个竞争对手同时为一家公司做compiler的symbol table, 公司要求你们代码共享,你们做好后公司评判的标准就是 你俩互相提供一些测试样例,谁的效率高就买谁的。 ...

2018-05-31 12:57:48 7786 6

原创 跳跃表

学习跳跃表的过程中,发现现有的博客文章大部分只是给出了定义、插入删除操作、时间空间复杂度结论,没有清晰的证明。因此结合网易公开课上关于跳跃表的视频(http://open.163.com/movie/2010/12/7/S/M6UTT5U0I_M6V2TTJ7S.html),以及现有博客,整理出跳跃表的逻辑和相关证明。产生动机定义跳跃表高度跳跃表搜索时间复杂度跳跃表空间复杂度跳跃表...

2018-05-17 15:17:19 189

原创 红黑树原理及相关操作

之前因为红黑树较为复杂,一直没敢接触,这几天在看hashmap和treemap,因为treemap是通过红黑树实现的,因此下定决心研究下,先看的麻省理工学院的视频(http://open.163.com/movie/2010/12/9/J/M6UTT5U0I_M6V2TJ49J.html),里面讲解了红黑树(RBT)关于搜索时间复杂度(树的高度)和插入操作两部分,删除操作后面自己通过看博客了解的,...

2018-05-07 17:13:01 330

原创 KMP算法小结

KMP算法很早以前就了解到有KMP算法的存在,当时就是知道其可以高效的匹配字符串,但是没敢细看(其实看了一眼,又吓得赶紧退出来。。),最近突然又看到这个算法,就想着学习一下,鉴于自己理解力不太够,花了好久才明白个大概,因此防止过两天就忘,在这里做个笔记。字符串前缀与后缀前缀:除了最后一个字符以外,一个字符串的全部头部组合。后缀:除了第一个字符以外,一个字符串的全部尾部组合。最...

2018-04-02 15:18:03 199

原创 剑指offer-调整数组顺序使奇数位于偶数前面(python)

调整数组顺序使奇数位于偶数前面剑指offer上的题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变 https://www.nowcoder.com/practice/beb5aa231adc45b2a5dcc5b62c93f593?tpId=13&tqI...

2018-03-25 17:45:24 203

原创 查找算法-顺序查找和折半查找

顺序查找遍历数组的每一个元素,线性查找,时间复杂度为O(n).代码class Solution: def GetNumberOfK(self, data, k): length=0 for i in range(len(data)): if data[i]==k: return k ...

2018-03-15 15:25:13 5558

原创 频率学派和贝叶斯学派区别浅谈

区别往大里说,世界观就不同,频率派认为参数是客观存在,不会改变,虽然未知,但却是固定值;贝叶斯派则认为参数是随机值,因为没有观察到,那么和是一个随机数也没有什么区别,因此参数也可以有分布,个人认为这个和量子力学某些观点不谋而合。往小处说,频率派最常关心的是似然函数,而贝叶斯派最常关心的是后验分布。我们会发现,后验分布其实就是似然函数乘以先验分布再normalize一下使其积分到1。因此两者...

2018-03-15 09:58:48 4195

原创 数组中的逆序对python

牛客网上的剑指offer编程题题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007冒泡思想看到这道题,首先想到的是冒泡排序法,也就是两两比较,时间复杂度为(n^2),这里对冒泡排序进行一定改进:某次比较过程中,如果没有两...

2018-03-14 14:49:42 7854 6

转载 Python实现深度优先遍历和广度优先遍历

转载自:http://blog.csdn.net/bone_ace/article/details/46718683python实现二叉树和它的七种遍历介绍树是数据结构中非常重要的一种,主要的用途是用来提高查找效率,对于要重复查找的情况效果更佳,如二叉排序树、FP-树。另外可以用来提高编码效率,如哈弗曼树。 代码树的构造递归实现前序遍历、中序遍历、后序遍历栈实现前序遍历...

2018-03-13 22:02:19 6606

原创 python-深拷贝与浅拷贝

最近遇到这个深浅拷贝的问题,以前看过结果太久没用忘了,现在做个笔记。Python -浅拷贝与深拷贝分析对象的复制:a=[1,2] ; b=a浅拷贝:import copy ; a=[1,2] ; b=copy.copy(a)深拷贝:import copy ; a=[1,2]; b=copy.deepcopy(a)对象的赋值这里先介绍下python中的可变对象和...

2018-03-09 11:25:15 197

原创 哈夫曼树及python实现

最近在看《tensorflow实战》中关于RNN一节,里面关于word2vec中涉及到了哈夫曼树,因此在查看了很多博客(文末)介绍后,按自己的理解对概念进行了整理(拼凑了下TXT..),最后自己用python实现Haffuman树的构建及编码。哈夫曼(huffman)树基本概念路径和路径长度:树中一个结点到另一个结点之间的分支构成这两个结点之间的路径;路径上的分枝数目称作路径长度,它等于路径上的结

2017-12-26 21:45:31 23540 7

原创 基于BP算法的前馈神经网络

BP神经网络首先给出只包含一个隐层的BP神经网络模型(两层神经网络): BP神经网络其实由两部分组成:前馈神经网络:神经网络是前馈的,其权重都不回送到输入单元,或前一层输出单元(数据信息是单向传播的,不会回流),区别于循环神经网络RNN。BP算法(Back Propagation):误差反向传播算法,用于更新网络中的权重。BP神经网络思想:表面上:1. 数据信息的前向传播,从输入层到隐

2017-12-07 22:46:31 5895

原创 链表的python实现

链表的特点链表是一种基础的数据结构,其特点为: 链表中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到一起,每个结点包括两个部分:一个是存储数据元素 的数据域,另一个是存储下一个结点地址的 指针。如果要访问链表中一个元素,需要从第一个元素始,一直找到需要的元素位置。但是增加和删除一个元素对于链表数据结构就非常简单了,只要修改元素中的指针就可以了。如果应用需要经常插入和删除元素你就需要

2017-12-05 17:50:49 1951

原创 EM算法

最近在看李航《统计学习方法》中关于em算法的部分,说实话不是很好理解,为了弄明白这个东东到底是要干嘛,以及其相应的推导,在网上查了不少资料。网上相关的证明推导很多,本文主要按照我自己的逻辑,写点自己对于这部分知识的理解,有什么不对的地方欢迎大家指出来!EM算法算法思想首先引入一个经典例子来说明,假设我们现在想调查一个学校男女学生身高分布情况,首先随机抽取出了100个学生,每个学生的身高随机变量X已知

2017-11-25 23:12:56 332

原创 排序算法-快速排序

快速排序算法描述快速排序是一种重要的排序算法,是实际应用中最好的选择,它是原址排序。与归并排序一样也采取了分治法的思想,不同的是:1. 它是通过值来划分序列(小于特定值在其左边,大于特定值在其右边),归并排序是通过位置划分(从序列中间划分)。2. 不存在合并过程,因为在求取划分点时已经包含排序过程。算法思想对于一个待排序列A[n]1.首先选取一个参考点(一般取最左边的A[1])2.然后设置两个哨

2017-11-21 19:07:48 170

原创 排序算法-堆排序

堆排序算法描述 堆排序算法具有空间原址性,(二叉)堆是一个数组,它近似完全二叉树,树上的每一个节点对应数组中的一个元素,除了最底层外,该树是>完满的,而且从左向右填充。最大堆性质最大堆指的是对于某个节点,其值一定不小于其左右子节点的值,不大于其父节点的值: Arr[PARENT(i)]>=ARR[i]。算法思想首先,利用最大堆性质,将序列建成最大堆,因为数组中最大元素总在根节点Arr[1]中,

2017-11-21 15:56:47 240

原创 排序算法-归并排序

归并排序算法描述归并排序利用了分治法的思想,不是原址排序,算法思路是:(1)分解,将待排序序列递归的分解为两个子序列(从中间位置分解),最终子序列只包含一个元素,即每个子序列都是排好序的;(2)合并,将已经排好序的子序列由下向上合并。算法实现(python)#将两个排好序的子序列arr[p:q]和arr[q:r]合并def mergeArray(arr,p,q,r): n1=q-p+1

2017-11-21 11:28:32 175

原创 排序算法-选择排序

选择排序算法描述选择排序算法思想是:首先扫描一次序列,找出最小的元素与序列第一个元素交换;然后对剩余元素继续扫描(从第二个元素开始扫描),找出最小元素与序列第二个元素进行交换。照此进行下去,直到排好序。算法实现def choose(arr): for i in range(len(arr)): index=i for j in range(i,len(arr)

2017-11-20 22:43:25 194

原创 排序算法-冒泡排序

冒泡排序算法描述冒泡排序的算法思想是:每次比较相临两个元素的值,若不符合顺序,则将两者;最终多次交换(第一遍循环)后,最大(最小)的元素沉淀到最后;然后针对剩余的前n-1个元素,再进行第二遍循环比较,最后将第二大(小)的元素沉淀到最后。持续照此过程,直到排序完成。算法实现(Python)def Bubble(arr): for i in range(len(arr)-1,0,-1):

2017-11-20 22:25:47 175

原创 栈和队列的python实现

栈和队列都是动态集合,栈实现的策略是:后进先出(LIFO),队列实现的策略是:先进先出。下面介绍如何使用python实现栈和列表这两种基础数据结构。栈的实现(python)class Stack(object): def __init__(self): self.items = [] def isEmpty(self): ret

2017-11-15 22:44:19 242

原创 插入排序

直接插入排序算法描述直接插入排序是一种原址排序法,核心思想是:对一个元素数目为n的待排序序列list,从序列第二个元素开始,将每一个待排序元素list[i] 与从后向前与其前面的元素依次比较,直到遇到第一个比list[i] 小的元素,则将其插入该元素后面(从小到大排);算法中待插入元素之前的序列已经是有序的,即list[0:i-1]是已经排好序的。算法实现(python)def insertArra

2017-11-15 22:21:01 142

原创 机器学习-提升方法

本文针对《统计学习方法》中的提升算法介绍,结合自己的理解总结而写。提升方法提升方法的基础思想是:针对一个复杂问题(回归或者分类),将多个专家的判断进行合理的综合得出的结果,要比一个专家单独的判断要好。对应到分类问题中,就是要构造多个弱分类器,然后综合得到强分类器。

2017-11-10 20:47:29 465

空空如也

空空如也

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

TA关注的人

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