自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

猫不夜行的博客

静水留深

  • 博客(67)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java排序算法之快速排序

1. 快速排序法介绍:快速排序(Quicksort)是对冒泡排序的一种改进。2. 基本思想:(分治)先从数列中取出一个数作为key值; 将比这个数小的数全部放在它的左边,大于或等于它的数全部放在它的右边; 对左右两个小数列重复第二步,直至各区间只有1个数。(通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分...

2019-07-25 22:25:00 76

原创 Java排序算法之希尔排序

1.插入排序存在问题数组 arr = {2,3,4,5,6,1} ,在需要插入的数 1(最小)时,过程为:{2,3,4,5,6,6}{2,3,4,5,5,6}{2,3,4,4,5,6}{2,3,3,4,5,6}{2,2,3,4,5,6}{1,2,3,4,5,6}结论:当需要插入的数是较小的数时,后移的次数明显增多,对效率有影响。2. 希尔排序介绍希尔排序是希尔(Do...

2019-07-25 20:11:00 63

原创 Java排序算法之插入排序

1.插入排序(Insertion Sort)基本思想把n个待排序的元素看成为一个有序表和一个无序表 开始时有序表中只包含一个元素,无序表中包含有n-1个元素 排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置 使之成为新的有序表。插入排序的时间复杂度为:O(n2)2.图解3. 代码实现1)循环实现...

2019-07-25 14:45:00 95

原创 Java排序算法之选择排序

1. 基本思想选择排序(select sorting)的基本思想是:1)对于一个大小为n的数组,选择排序共执行n-1轮排序2)每轮排序寻找到该轮最小的数放到开始位置上:先假定当前这个数是最小数 然后和后面的每个数进行比较,如果发现有比当前数更小的数,就重新确定最小数,得到下标 当遍历到数组的最后时,就得到本轮最小数和下标 进行数据交换选择排序的时间复杂度为:O(n2)...

2019-07-25 14:09:00 69

原创 Java排序算法之冒泡排序

1. 介绍冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。假设数组长度为n,冒泡排序共执行n-1次排序,在第i次排序中对从第一个元素到第n-i个元素进行两两遍历,如果右边小于左边则进行交换。优化:因为排序的过程中,各元素不断接...

2019-07-25 13:54:00 98

原创 Java数据结构之算法时间度

1.度量一个程序(算法)执行时间的两种方法1)事后统计的方法这种方法可行, 但是有两个问题:一是要想对设计的算法的运行性能进行评测,需要实际运行该程序;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素, 这种方式,要在同一台计算机的相同状态下运行,才能比较那个算法速度更快。2)事前估算的方法通过分析某个算法的时间复杂度来判断哪个算法更优。2.时间频度基本介绍:一个算...

2019-07-25 11:58:00 139

原创 Java数据结构之递归(Recursion)

1. 递归解决问题各种数学问题如:8皇后问题,汉诺塔,阶乘问题,迷宫问题,球和篮子的问题(google编程大赛) 各种算法中也会使用到递归,比如快速排序,归并排序,二分查找,分治算法等 将用栈解决的问题—>代码比较简洁2. 递归调用机制当程序执行到一个方法时,就会开辟一个独立的空间(栈)每个空间的数据(局部变量)是独立的3. 递归原则1)执行一个方法时,就创建...

2019-07-25 01:21:00 115

原创 Java数据结构之栈(Stack)

1.栈(Stack)的介绍栈是一个先入后出(FILO:First In Last Out)的有序列表。栈(Stack)是限制线性表中元素的插入和删除只能在同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶而删除元素刚好相反,最后放入的元...

2019-07-25 00:16:00 372

原创 Java数据结构之单向环形链表(解决Josephu约瑟夫环问题)

1.Josephu(约瑟夫、约瑟夫环)问题:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。提示:用一个不带头结点的循环链表来处理Josephu 问题:先构成一个有n个结点的单循环链表,然后由k结点起从1开...

2019-07-24 23:28:00 268

原创 Java数据结构之双向链表

管理单向链表的缺点分析:单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找。单向链表不能自我删除,需要靠辅助节点 ,而双向链表,则可以自我删除,所以前面我们单链表删除时节点,总是找到temp,temp是待删除节点的前一个节点。示意图对上图的说明:分析双向链表的遍历、添加、修改、删除的操作思路:1)遍历:方法和单链表一样,只是可以向前查找,也可以向后查找...

2019-07-24 23:01:00 64

原创 Java数据结构之链表(Linked List)

1.链表(Linked List)介绍链表是有序的列表,但是它在内存存储结构如下:2.特点:链表是以节点的方式来存储,是链式存储 每个节点包含 data 域, next 域:指向下一个节点. 链表的各个节点不一定是连续存储. 链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定3.单链表介绍单链表(带头结点) 逻辑结构示意图如下:4.应用示例:使用...

2019-07-24 17:36:00 560 1

原创 Java数据结构之队列(Queue)

1.使用场景银行排队的案例:2.队列介绍队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则:先存入队列的数据,要先取出。 后存入的要后取出示意图:(使用数组模拟队列示意图)3.实现方式1:数组模拟队列思路分析队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队列的最大容量。f...

2019-07-24 17:07:00 185

原创 Java数据结构之稀疏数组(Sparse Array)

1.需求编写的五子棋程序中,有存盘退出和续上盘的功能。因为该二维数组的很多值是默认值0,因此记录了很多没有意义的数据,为了压缩存储所以采用稀疏数组。2.基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。处理方法:记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模...

2019-07-24 16:15:00 90

原创 Java数据结构介绍(线性结构和非线性结构)

数据结构包括:线性结构和非线性结构。线性结构数据元素之间存在一对一的线性关系 包括顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的 链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息 线性结构常见的有:数组、队列、链表和栈非线性结构非线性结构包括:二维数组,多维数组,广义表,树结构,图结构...

2019-07-24 15:49:00 127

原创 大数据学习路线规划图

2019-07-24 15:37:00 124

原创 HDFS-HA高可用工作机制

1.HDFS-HA概述1)所谓HA(high available),即高可用(7*24小时不中断服务)。2)实现高可用最关键的策略是消除单点故障。HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN的HA。3)Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF)。4)NameNode主要在以下两个方面影响HDFS集群NameNode机器...

2019-07-24 13:13:00 139

原创 HDFS中DataNode工作机制

1.DataNode工作机制1)一个数据块在datanode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据(包括数据块的长度,块数据的校验和,以及时间戳)。2)DataNode启动后向namenode注册,通过后,周期性(1小时)的向namenode上报所有的块信息。3)心跳是每3秒一次,心跳返回结果带有namenode给该datanode的命令如复制块数据...

2019-07-24 12:16:00 109

原创 HDFS启动过程概述及集群安全模式操作

1.启动过程概述Namenode启动时,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsimage文件和一个空的编辑日志。此时,namenode开始监听datanode请求。但是此刻,namenode运行在安全模式,即namenode的文件系统对于客户端来说是只读的。系统中的数据块的位置并不是...

2019-07-24 11:47:00 98

原创 HDFS中NameNode发生故障没有备份从SecondNameNode恢复

1.Secondary NameNode目录结构Secondary NameNode用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。在/opt/module/hadoop-2.7.2/data/tmp/dfs/namesecondary/current这个目录中查看SecondaryNameNode目录结构。edits_0000000000000...

2019-07-24 11:44:00 464

原创 剑指Offer编程题(Java实现)——数组中的重复数字

题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。解题思路要求时间复杂度 O(N),空间复杂度 O(1)。因此不能使用排序的方法,也不能使用额外的标记数组。对...

2019-07-24 00:23:00 101

原创 剑指Offer编程题(Java实现)——替换空格

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路1在字符串尾部填充任意字符,使得字符串的长度等于替换之后的长度。因为一个空格要替换成三个字符(%20),因此当遍历到一个空格时,需要在尾部填充两个任意字符。令 P1 指向字符串原来的末尾位置,P2 指向字符串...

2019-07-24 00:15:00 74

原创 剑指Offer编程题(Java实现)——二维数组中的查找

题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路根据排序特点,该二维数组中的一个数,小于它的数一定在其左边,大于它的数一定在其下边。因此,从右上角开始查找,就可以根据 target 和当前元素的大小关系来缩小查找区间,当前...

2019-07-23 22:49:00 118

原创 Java集合概括总结及集合选用

Collection1. ListArrayList:Object数组,是一个数组队列,相当于动态数组。它由数组实现,随机访问效率高,随机插入、随机删除效率低。 LinkedList :是一个双向链表(JDK1.6之前为循环链表,JDK1.7取消了循环)。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList随机访问效率低,但随机插入、随机删除效率高。 Vect...

2019-07-23 20:49:00 92

原创 Java中获取大小:length、length()、size()

1. java 中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了 length 这个属性.2. java 中的length()方法是针对字符串说的,如果想看这个字符串的长度则用到length()这个方法.3. java 中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看...

2019-07-23 18:37:00 875

原创 解决MarkDown打开出现:awesomium web-brower framework This view has crashed

当在windows 8 以上操作系统安装markdown 的时候,可能会出现这样的错误解决方法:官网链接:http://markdownpad.com/faq.html#livepreview-directx要修复这个问题,请尝试安装 Awesomium 1.6.6 SDK.如果继续后还是有这个问题,请按照 Microsoft’s DirectX End-User R...

2019-07-23 10:47:00 516

原创 Java集合:Collection、List、Set、Map、泛型

1.集合的理解和好处2.集合的框架体系图 ★3.Collection接口的特点和使用 ★4.List和Set接口的特点和使用★5.List接口的实现类学习★6.Set接口的实现类学习★7.Map接口的特点和使用★8.Map接口的实现类学习★9.Collections工具类的使用★10.泛型的使用★0.集合的学习思路层面1:应用层面 √可以掌握重点的...

2019-07-23 10:06:00 121

原创 Java中的常用类:包装类、String、StringBuffer、StringBuilder、Math、System、Arrays、BigInteger、BigDecimal、Data...

一、包装类 √二、String类 ★三、StringBuffer和StringBuilder类 ★四、Math类五、System类六、Arrays类七、BigInteger类和BigDecimal类八、Date日期类、Calendar日历类以及新的日期一、包装类1.概念:为8大基本数据类型对应的提供了引用数据类型,则这些引用数据类型称为包装类2.数据类型:...

2019-07-22 00:12:00 115

原创 Java异常

1.Java异常事件Java程序在执行过程中所发生的异常事件可分为两类:Error: Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowError和OOM。一般不编写针对性的代码进行处理。Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:空指针访问 试图读取不存在...

2019-07-21 23:06:00 81

原创 大数据开发学习路线整理

参考博客:做了五年大数据开发工程师总结的的大数据学习路线大数据的4V特征:1. 数据量大,TB->PB2. 数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;3. 商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来;4. 处理时效性高,海量数据的处理需求不再局限在离...

2019-07-21 17:34:00 245

原创 HDFS镜像文件fsimage和编辑日志文件edits

镜像文件和编辑日志文件1)概念 namenode被格式化之后,将在/opt/module/hadoop-2.7.2/data/tmp/dfs/name/current目录中产生如下文件edits_0000000000000000000fsimage_0000000000000000000.md5seen_txidVERSION(1)Fsimage文件:HD...

2019-07-19 19:51:00 414

原创 HDFS中NameNode和Secondary NameNode工作机制

NameNode工作机制0)启动概述Namenode启动时,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsimage文件和一个空的编辑日志。此时,namenode开始监听datanode请求。但是此刻,namenode运行在安全模式,即namenode的文件系统对于客户端来说是只读的。系...

2019-07-19 17:35:00 155

原创 HDFS数据流——读数据流程

HDFS读数据流程假设客户端请求下载文件/user/atguigu/ss.avi,HDFS读数据流程如下:1)客户端向namenode请求下载文件,namenode通过查询元数据,找到文件所有文件块及所在的datanode地址。2)挑选一台datanode(就近原则,然后随机)服务器,请求读取数据。3)datanode开始传输数据给客户端(从磁盘里面读取数据放入流,以p...

2019-07-19 16:59:00 160

原创 HDFS网络拓扑概念及机架感知(副本节点选择)

网络拓扑概念在本地网络中,两个节点被称为“彼此近邻”是什么意思?在海量数据处理中,其主要限制因素是节点之间数据的传输速率——带宽很稀缺。这里将两个节点间的带宽作为距离的衡量标准。 节点距离:两个节点到达最近的共同祖先(如路由器)的距离总和。例如,假设有数据中心d1机架r1中的节点n1。该节点可以表示为/d1/r1/n1。利用这种标记,这里给出四种距离描述。Distan...

2019-07-19 16:49:00 179

原创 HDFS数据流——写数据流程

剖析HDFS文件写入假设文件ss.avi共200m,其写入HDFS指定路径/user/atguigu/ss.avi流程如下:1)客户端向namenode请求上传文件到指定路径,namenode通过元数据(编辑日志edits和镜像文件fsimage)检查目标文件是否已存在,父目录是否存在。(先执行edits,再看fsimage中是否存在)2)namenode返回是否可以上传。...

2019-07-19 16:35:00 99

原创 HDFS基本概念

概念HDFS,它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。注意:HDFS的设计适合一次写入,多次读出的场景,且不支持文件的修改。适合用来做数据分析,并不适合用来做网盘应用。组成1)HDFS集群包括,NameNode和DataNode以及Secondary Namenode。2)NameN...

2019-07-19 16:18:00 203 1

原创 Linux-SSH免密登陆原理

2019-07-19 14:09:00 96

原创 Hadoop运行模式:本地模式、伪分布模式、完全分布模式

1、本地模式:默认模式  - 不对配置文件进行修改。  - 使用本地文件系统,而不是分布式文件系统。  - Hadoop不会启动NameNode、DataNode、ResourceManager、NodeManager等守护进程,Map()和Reduce()任务作为同一个进程的不同部分来执行的。  - 用于对MapReduce程序的逻辑进行调试,确保程序的正确。2、伪分布模式...

2019-07-19 13:44:00 671

原创 Java枚举enum关键字

枚举的理解枚举其实就是一个类,枚举类的实例是一组限定的对象传统的方式创建枚举 【了解】对比:单例类1、构造器私有化2、本类内部创建对象3、通过public static方法,对外暴露该对象枚举类1、构造器私有化2、本类内部创建一组对象,添加public static修饰符,直接暴露对象/** * 此类用于演示使用传统的方式创建枚举 * 步骤 * ...

2019-07-18 17:20:00 272

原创 Java内部类

理解:一个类中又完整的嵌套了另一个类结构,被嵌套的类称为内部类。外面的类称为外部类,和内部类无关的外部类称为外部其他类。class A{  // B的外部类 String name; public void method(){ for(){ int i; class B{ // A的内部类 ...

2019-07-18 16:55:00 52

原创 Eclipse常用快捷键

快捷键 描述 编辑 Ctrl+1 快速修复(最经典的快捷键,就不用多说了,可以解决很多问题,比如import类、try catch包围等) Ctrl+Shift+F 格式化当前代码 Ctrl+Shift+M 添加类的import导入 Ctrl+Shift+O 组织类的import导入(既有Ctrl+Shift+M的作用,又可以帮你去除没用的...

2019-07-18 14:50:00 54

全国计算机三级网络技术教程

全国计算机三级网络技术教程

2014-09-09

单片机原理及应用(张毅刚)

由张毅刚主编,高等教育出版社出版的单片机原理及应用

2014-03-24

空空如也

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

TA关注的人

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