- 博客(35)
- 收藏
- 关注
原创 Activity和Fragment(一)
Activity和Fragment今天主要的任务是切换Activity中不同的Fragment:在一个Activity中包含4个Fragment,根据进度条的值来确定要切换到对应的Fragment中,遇到的几个问题。
2017-10-18 17:41:46 427
原创 《代码整洁之道》学习小结(一)
第一章 整洁代码勒布朗(LeBlanc)法则:稍后等于永不(Later equal never)。要在工作中体现自己的专业性,尤其是和产品或需求方交谈时。代码逻辑直截了当,尽量减少依赖关系,完善错误处理代码,性能调整最优。要在意自己的代码。能通过所有测试,没有重复代码,体现设计理念,包括尽量少的实体(类、方法、函数等)。消除重复(封装重复代码,抽象为类或者方法,具体实现的功能)和提高表达力(使得变
2017-08-22 19:30:40 1090
转载 spark安装具体步骤
最近,在大波面试来袭的时候,我默默的在这钻研spark的安装,以前的linux的基础知识都忘得差不多了,所以安装起来比较麻烦,于是写下这篇安装博文,希望有用。
2016-08-23 09:47:41 8982 1
原创 最短路径
非网图的最小路径就是指两顶点之间经过的边数最小的路径;而对网图来说,最短路径,是指梁鼎点之间经过的边上权值之和最少的路径,并且我们称路径上的第一个顶点为源点,最后一个顶点为终点。下面讲解两种求最短路径的算法,分别为:迪杰斯特拉(Dijkstra)算法和弗洛伊德(Floyd)算法,具体介绍如下:迪杰斯特拉(Dijkstra)算法迪杰斯特拉算法并不是一下求出 v0v_0 到 v8v_8 的最短路径,而
2016-07-15 16:35:07 2088
原创 最小生成树
一个连通图的生成树是一个极小的连通子图,包含图中全部顶点,但只有足以构成一棵树的n-1条边。于是,将构造连通网的最小代价生成树称为最小生成树(Minimum Cost Spanning Tree)。经典的算法有两种,普里姆算法和克鲁斯卡尔算法,下面详细介绍。普里姆(Prim)算法/*Prim算法生成最小生成树,邻接矩阵,时间复杂度O(n^2)*/void MiniSpanTree(MGraph
2016-07-14 22:23:50 1591
原创 图的遍历
从图中某一顶点出发访遍图中其与顶点,且使每一个顶点仅被访问一次,这一过程叫做图的遍历(Traversing Graph)。对于图的遍历来说,如何避免回路陷入死循环,就要科学设计遍历方案,通常有两种:深度优先遍历和广度优先遍历。下面详细介绍了深度优先遍历和广度优先遍历的概念以及使用线性矩阵和线性表的具体实现代码。
2016-07-14 16:01:05 749
转载 图的存储结构
首先介绍了下图的抽象数据类型;然后重点介绍了图的存储结构,主要是五种:邻接矩阵、邻接表、十字链表、邻接多重表和边集数组。邻接矩阵用一维数组存储顶点信息,用二维数组来存储边的信息;邻接表使用数组加链表的方式,一维数组存储顶点,链表存储边;十字链表是结合邻接表和逆邻接表,是有向图的优化存储结构,方便求入度和出度;而邻接多重表是无向图的优化存储结构,方便对边进行操作;边集数组更偏向于边依次处理操作。
2016-07-14 14:50:57 15845
原创 图(Graph)
图的基本定义 图(Graph)是由顶点的又穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中变得集合。介绍了各种不同的图,有向图和无向图,主要区别是点的连接是否有方向,完全图、稠密图、网、子图这些了解基本概念即可。还了解了图的顶点与边的关系,边将两顶点连接,有向边、无向边、度、入度和出度等概念。最后介绍了连通图的相关概念,介绍了连通图的生成树概念。
2016-07-13 15:39:01 1031
原创 赫夫曼树
定义和原理从树中一个结点到另一个结点之间的分支构成两个结点之间的路径,路径上的分支数目称做路径长度。树的路径长度就是从树根到每一结点的路径长度之和。带权路径长度WPL最小的二叉树称做赫夫曼树,也为最优二叉树。介绍了赫夫曼树构造的赫夫曼算法描述,重点的应用是赫夫曼编码,利用赫夫曼树来构造最优二叉树后,树的左分支定义为0,右分支定义为1,而字符的路径编码就是其赫夫曼编码。
2016-07-13 14:14:06 641
转载 树、森林与二叉树的转换
本文主要介绍了树、森林和二叉树的转换,列举了树转换为二叉树、森林转换为二叉树、二叉树转换为树以及二叉树转换为森林的方法的具体步骤以及相关图示。最后还介绍了树和森林的遍历方法,以及在二叉链表的存储结构中,可将树和森林的遍历转换为二叉树的遍历,使得复杂问题简单化。
2016-07-13 10:51:36 2433
原创 线索二叉树
将指向前驱和后继的指针称为线索,加上线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树(Threaded Binary Tree)。二叉树进行中序遍历后,将空指针域中右孩子指向其后继结点,再将所有空指针域中的lchild改为指向当前结点的前驱。其实线索二叉树等于将二叉树转变为一个双向链表,方便插入和删除。对二叉树以某种次序遍历使其转变为线索二叉树的过程称作是线索化。
2016-07-13 09:53:57 805
原创 二叉树遍历
原理 二叉树的遍历是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问依次且仅被访问一次。树的遍历方法是把树中的结点变成某种意义的线性序列,方便计算机处理。二叉树的遍历方法很多,若限制了从左到右的习惯方式,主要分为四种:前序遍历;中序遍历;后序遍历和层次遍历。
2016-07-12 22:17:43 681
原创 二叉树(Binary Tree)
二叉树(Binary Tree)是n个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。 二叉树特点: 每个结点最多有两棵子树;左子树和右子树是有顺序的,次序不能颠倒。介绍了特殊二叉树,分别为斜树、满二叉树和完全二叉树。重点介绍了二叉树的五个性质,还有二叉树的顺序存储结构和链式存储结构,顺序结构仅适于完全二叉树,链式存储较灵活。二叉树的建立
2016-07-12 20:46:02 9469 1
原创 树(Tree)
树(tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一棵非空树中:(1)有且仅有一个特定的称为根(Root)的结点;(2)当 n>1 时,其与结点可分为m( m>0 )个互不相交的有限集,其中每个集合本身又是一棵树,并且称为根的子树(SubTree)。充分利用顺序存储和链式存储结构特点,完全可以实现对树的存储结构的表示。介绍三种不同的表示法:双亲表示法、孩子表示法、孩子兄弟表示法。
2016-07-12 16:22:27 1078
原创 串的应用--模式匹配算法
子串的定位操作通常称为串的模式匹配,是串中最重要的操作之一。朴素的模式匹配算法,简单来说,就是对主串的每个字符作为子串开头,与要匹配的字符串进行匹配。对主串做大循环,每个字符开头做T的长度的小循环,知道匹配成功或全部遍历完成为止。朴素的模式匹配中有很多重复的遍历步骤,主串的i是需要不断回溯来完成,而分析发现,这种回溯可以是不需要的,而KMP模式匹配算法就是避免这种不必要的回溯发生。改进的KMP模式匹配算法。
2016-07-12 10:23:15 4566
原创 串(String)--基本概念
概念 串(string)是由零个或多个字符组成的有限序列,又叫字符串。串中的字符数目n成为串的长度。零个字符的串成为空串。串的逻辑结构和线性表很相似,不同之处在于串针对的是字符集,串的每个元素都是字符。因此,串的基本操作和线性表有较大差距。线性表关注单个元素的操作,例如查找、插入和删除元素;但串种更多的是查找子串的位置、得到指定位置的子串、替换子串等操作。
2016-07-11 19:31:34 1101
原创 队列(Queue)
概念队列(Queue)是只允许在一端进行插入工作,而在另一端进行删除操作的线性表。队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。队列的顺序存储结构,数组存储队列元素,提出循环队列概念来解决”假溢出“问题,要注意判断队列为空还是满的条件;队列的链式存储结构,也叫链队列,队列的队头指针指向头结点,在删除时要注意尾指针变化(只有一个元素)。
2016-07-11 16:32:26 10696 1
原创 栈的应用--递归与四则运算表达式求值
递归,是一个直接调用自己或通过一系列的调用语句间接的调用自己的函数。以斐波那契数列为例,对比其非递归和递归函数代码的区别,来让读者深刻了解递归的工作流程。四则运算表达式求值,是利用栈来完成四则运算,首先将中缀表达式转换为后缀表达式,最后使用计算机完成后缀表达式的运算。这两个均是栈的应用实例,递归的底层使用栈来实现,而四则运算的两个过程均使用栈来完成。
2016-07-11 09:57:14 2315
原创 栈(Stack)
概念栈(stack)是限定仅在表尾进行插入和删除操作的线性表。允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈成为空栈,栈又被称为后进先出(Last In First Out)的线性表,简称LIFO结构。栈的插入操作叫做进栈/压栈/入栈;栈的删除操作叫做出栈/弹栈。栈的抽象数据类型ADT 栈(stack)Data 同线性表。元素具有相同类型,相邻元
2016-07-09 10:47:50 694
原创 线性表(List) 二
线性表的链式存储结构除了要存储其本身的信息之外,还需要存储一个指示其直接后继的信息(即直接后继的物理位置)。将存储数据元素信息的域称为数据域,把存储直接后继位置的域成为指针域。后面就链式存储结构具体的形式做出描述,包括单链表、静态链表方法、循环链表和双向链表。单链表是只保存直接后继元素的指针域;静态链表方法是使用顺序存储方式实现单链表功能;循环链表是将终端元素和头结点连接,形成环;双向链表包含直接后继和前驱元素指针域
2016-07-08 16:04:41 1388
原创 线性表(List) 一
线性表的基本概念,描述了线性表的抽象数据类型,八种基本操作组合成复杂的操作,线性表的顺序存储结构,数组实现,随机存取结构,可以直接根据数组的下标确定该元素的物理位置,查询操作很简单,但是插入和删除操作较为复杂,要移动数据元素来完成对应操作,例如插入是需要将该位置后面的元素向后移动一位,删除时需要将该位置后面的元素向前移动一位,最后指出顺序存储的优缺点。
2016-07-07 15:48:56 1610
原创 数据结构之算法简介
数据结构和算法的关系密切,所以大致介绍算法的基础概念。eg:求1+2+…+100结果的程序,平常的代码可能为:int i,sum=0,n=100;for(i=1;i<=n;i++){ sum=sum+i;}printf("%d",sum);但是用另一种方法更简单的求解(类似于求等差数列):int sum=0,n=100;sum=(1+n)*n/2; //2*sum=100*10
2016-07-07 11:04:27 315
原创 数据结构 绪论
数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。数据:描述客观事件的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。包括数值型和非数值型。(两个前提:该符号能输入到计算机中;能被计算机程序处理。)数据元素:组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。(数据的组成部分)数据项:一个数据元素
2016-07-07 09:40:04 351
转载 梯度下降法(Gradient Descent)
梯度下降法(通常也称为最速下降法)是一个一阶最优化算法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点,这个过程则被称为梯度上升法。
2016-07-06 15:50:12 14494
转载 最小二乘法
注意:本文主要引用维基百科。概念最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。举例例如最简单的一次函数y=kx+b,已知坐标轴上已知点(1,6),(2,5),(3,7),(4,10),求经过这些点的图象的一次函数关系式。当然这条直
2016-07-06 10:50:12 2615
转载 最大似然估计
原理举例离散分布离散有限参数空间离散分布连续参数空间连续分布连续参数空间小结原理给定一个概率分布D,假定器概率密度函数(连续分布)或概率质量函数(离散分布)为 fDf_D,以及一个分布参数 θ\theta,我们可以从这个分布中抽取一个具有n个值的采样 X1,X2,...,XnX_1,X_2,...,X_n,通过利用 fDf_D,我们就能计算出其概率:P(x1,x2,...,xn)=fD(x
2016-07-06 08:46:28 2627
转载 N-Gram 模型
N-Gram是大词汇连续语音识别中常用的一种语言模型。在语音识别中,对中文而言,我们称之为汉语语言模型(CLM, Chinese Language Model)。汉语语言模型利用上下文中相邻词间的搭配信息,在需要把连续无空格的拼音、笔划,或代表字母或笔划的数字,转换成汉字串(即句子)时,可以计算出具有最大概率的句子,从而实现到汉字的自动转换,无需用户手动选择,避开了许多汉字对应一个相同的拼音(或笔划
2016-07-05 14:50:38 1392
原创 android百度地图(二)之定位
其实百度地图定位到设备当前位置还是比较简单的。首先是定位初始化以及设定地图配置。private LocationClient mLocationClient;//定位的客户端private MyLocationListener mMyLocationListener;//定位的监视器private LocationMode mCurrentMode = LocationMode.NORMAL;/
2015-10-24 20:25:08 470
原创 android Fragment
首先是创建一个项目,然后MainActivity继承FragmentActivity,配置好布局文件,再切换到MainFragment,其中MainFragment是一个过渡。<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2015-10-24 10:23:36 403
转载 android百度地图(一)
1.首先要获取到百度Android SDK的密钥。访问网络地址:http://developer.baidu.com/map/index.php?title=androidsdk/guide/key。点击申请密钥,进入申请密钥页面,点击创建应用选项,应用类型选择Android SDK,输入应用名和安全码。其中安全码:数字签名;包名。而数字签名可通过eclipse查询到,即为下面的SHA1全部代码串,
2015-10-22 17:53:49 475
转载 beego内置的模板函数
目前beego内置的模板函数有如下:(在.html文件中可以直接使用的函数。)markdown实现了把markdown文本转化为html信息,使用方法{{markdown .Content}}dateformat实现了时间的格式化,返回字符串,使用方法{{dateformat .Time “2006-01-02T15:04:05Z07:00”}}date实现了类似PHP的date函数,可以很方便的根
2015-10-22 14:50:23 3916 1
原创 DWZ文件上传,time转化
项目中遇到DWZ文件上传相关问题,所以记录下,至于时间相关的问题经常遇到,特此也做下记录。 DWZ文件上传首先是.html文件中,应有表单提交上传文件。如下图代码,使用联动文本框显示文件名,点击保存按钮时提交表单。 注意onsubmit=”return iframeCallback(this);”此处应使用iframeCallback(this)无刷新的表单提交,若是变成valida
2015-10-20 15:28:04 4107
原创 navTabPageBreak注意事项以及调试步骤
使用DWZ框架时,Ajax提交表单若是调用navTabPageBreak()方法时要注意指定form表单的action,否则默认为index跳转,则会出现错误。 例如: <form id="verifyForm" action="/admin/dynList" rel="pagerForm">顺便一提golang的网页调试方法: 按F12弹出菜单,找到console,在下面的输入框中输入nav
2015-10-16 16:28:49 922
原创 GO 获取时间的年份、月份以及日期
网上很多资料提供time将时间戳转成字符串的例子,但如何将获得的时间分为年、月、日分别展示,例如: ,上面显示的是日期,下面显示的是月份。作为初学者,表示网上的资料有点看不懂,记录一下,还望斧正。首先要获取一个Time类型的变量,平时要获取现在的时间的话,直接使用now即可,但若是从数据库中读取的数据应当如何呢?下面叙述: 直接获取系统时间year:=time.Now().Year()mo
2015-09-22 16:00:04 14606
转载 Go语言导出excel文件(.xlsx)
网上有许多关于导出excel的资料,其中最多的就是创建一个新的.xlsx文件(.xls库不提供写入的功能)。但是这种情况下导出的excel往往比较难看,另一种情况就是打开一个模板,往里面填充东西,往往首行固定。 第一种方法(直接创建)package mainimport ( "github.com/tealeg/xlsx")func main() { file := xlsx
2015-09-15 17:33:32 15416 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人