自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 希尔排序 | 详细思路、Java代码注释

希尔排序又称为缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率。但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位。一、原理既然希尔排序是插入排序的改进版本,那么它们之间必定有相似之处。那么得先回忆下什么是插入排序?插入排序就是将一个数组分为两个区间:已排序区间和未排序区间。然后在未排序区间中取一个数,将其按照顺序插入到已排序区间,保证已排序区间一直

2021-03-21 16:43:15 401

原创 数据库事务详解:ACID四性、隔离级别、日志、事务控制语句

目录事务的特性事务的隔离级别事务日志事务控制语句数据库中的事务用来管理增、删、改操作,查询不需要事务管理,因为它并不会修改数据库中的数据。在 MySQL 中只有使用了InnoDB 数据库引擎 的数据库或表才支持事务。 事务的特性事务具有ACID四性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。原子性事务是作为一个整体来执行的,某个事务中的全部操作要么全部成功,要么全部失败。 若事务失败,则数据库状态回滚到事

2021-03-21 10:19:38 757 3

原创 桶排序 | 详细思路、Java实现与注释

目录一、原理二、实现代码示例三、算法分析一、原理桶排序顾名思义就是得有桶,在桶排序中,我们把未排序数据分成n组,这n组就对应放到n个桶里。那么要把数据放到桶里,有什么规则呢?首先,我们保证这n个桶是有序的;其次,我们把未排序序列分到这些桶里,然后各个桶分别对数据进行排序;最后,我们按照桶的顺序,把里面的数据按序依次取出,得到一个有序序列,那就是我们最终的排序结果。 举个例子,如图,{21,14,2,3,19,23,6,27,3}是一个无序数组,现在我们要用对它进行桶排序。首先把桶的范围划分清楚,

2021-03-20 22:32:24 494

原创 计数排序 | 详细思路、Java实现与注释

目录一、原理二、代码实现示例三、算法分析计数排序感觉不难,但是细节比较复杂。一、原理计数排序实质上是桶排序的特殊情况,对于桶排序,当桶的数量等于元素数量时,可以达到最短的排序时长,这种情况不就是一个桶对应一个元素值吗?比如我们有取值范围为1-50的的元素数组,设置50个桶,那就是值相等的元素放到同一个桶里,然后按顺序取出每个桶里的元素,就可以得到一个有序数组了。来看个例子,这有个无序数组 arr={8,4,5,7,1,4,3,6,7,9,7,2},我们要对它使用计数排序。首先,做一下准备工作。计算

2021-03-20 21:03:09 254

原创 基数排序 | 详细思路、Java实现

目录一、原理二、实现代码示例三、算法分析一、原理从整数元素的最低位(个位)开始,按照个位元素的值进行排序,得到一个排序结果,然后再根据此结果,在元素的十位上的元素进行排序,得到下一个结果。之后继续往高位进行这样的排序,最高位排序后得到的结果就是最终有序的数组。整个过程就如下图所示,原数组为{122,342,98,6,101},最高位(百位)的排序结果就是最终的有序数组,每一次排序都是建立在上一次排序结果的基础上。可以看到下面的98和6进行了补齐操作,这是因为当位数不同时我们得想办法让他们位数相同,好

2021-03-19 16:34:17 215

原创 Java中==运算符和equals()方法的区别

在讲它们的区别之前,先来明确以下概念:栈:存储局部变量和对象的引用堆:存储创建的对象实体常量池:字符串和数字字面量存储在常量池中,常量池中也存储着其它符号引用量数据。当两个字符串变量的值相同时,它们都是指向常量池中同一个值的,因此它们在栈中的首地址相同总结以上概念,可以得出结论:1.不管是java中的基本类型还是包装类型,或是其它所有类,它们的地址都是存储在栈中的;2.对于非基本类型,它们的实体存储在堆中;3.对于String类型以及其它基本类型的常量,若它们是常量,内容相同,则它们的栈中

2021-03-04 10:12:21 317 3

原创 大数据技术原理与应用:期末考点总结

个人期末复习材料,根据林子雨的大数据技术教材与其它资料整理。第一章 大数据概述1.大数据的4v特征数据量大 volume价值密度低 value数据类型繁多 variety处理速度快 velocity2.大数据3种思维方式的转变在思维方式方面,大数据完全颠覆了传统的思维方式:全样而非抽样效率而非精确相关而非因果3.大数据两大核心技术分布式存储和分布式处理 4.大数据计算模式及其代表产品大数据计算模式解决问题代表产品批处理计算针对大规

2021-02-18 22:57:37 10708 1

原创 Hadoop2.7.2 分布式集群搭建(CentOS 7)

Hadoop2.7.2 分布式集群搭建(CentOS 7)环境环境准备CentOS 7 64位 、Hadoop2.7.2、jdk1.8这里使用的是虚拟机安装CentOS 7 系统进行环境搭建。下载地址CentOS 7 镜像:https://mirrors.tuna.tsinghua.edu.cn/centos/7/isos/x86_64/Hadoop 2.7.2 https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/

2020-12-06 20:53:00 581

原创 Hadoop单机与伪分布式环境(CentOS)

Hadoop单机与伪分布式环境(CentOS)目录Hadoop单机与伪分布式环境(CentOS)环境准备CentOS 配置创建用户并设置root权限修改主机名安装SSH、配置SSH免密登陆安装JDKHadoop单机配置Hadoop伪分布式配置 环境准备环境准备CentOS 7 64位 、Hadoop2.7.2、jdk1.8这里使用的是虚拟机安装CentOS 7 系统进行环境搭建。下载地址可以通过官网自行下载Hadoop 2.7.2 https://archive.apache.

2020-12-03 17:44:29 242 3

原创 虚拟机使用NAT模式联网(CentOS 7)

今天,新建了一个CentOS节点,打算创建3个节点来部署Hadoop集群,之前做老师布置的作业用的是Ubuntu,网络使用的是桥接模式,安装和部署过程还比较顺利,今天用CentOS就卡在第一步了:虚拟机使用NAT模式无法联网。最后解决了,写个笔记来总结一下吧。先列一下步骤:1.宿主机的网络配置(1)本地服务的开启(2)宿主机网络适配器的设置(3)虚拟机网络适配器的设置2.虚拟机的网络配置(1)VMware软件的网络配置(2)CentOS的网络配置 这个解决过程分两部分,一部分是宿主机的设

2020-12-01 21:29:45 936 2

原创 设计模式入门——抽象工厂模式

抽象工厂模式实例上次我们讲过了工厂方法模式,知道了它的4个要素:工厂抽象类,工厂实现类,产品抽象类和产品实现类。同样的,抽象工厂模式也有这4个要素。抽象工厂模式是在特定情况下对工厂方法模式的一种改进,那么什么是特定情况呢?先来看个例子。我已经根据工厂方法模式生产出了桌子和椅子,它们都是原木色的,没有上色,现在我想造一套白色桌子和椅子,或者一套黄色桌椅,那么我就得利用抽象工厂模式来生产了。 同样地,来定义抽象工厂模式的4个要素:工厂接口 ProcessingFactory工厂实现类 Add

2020-11-30 21:05:57 228 1

原创 设计模式入门——工厂方法模式

工厂方法模式文章目录工厂方法模式实例定义结构工厂方法的优点应用 实例我们先来看一个例子:现在我有一批木材,想要加工成桌子和椅子,那么就可以使用工厂方法模式。首先,得有个加工厂抽象类(可以实现为一个接口),它是所有加工厂的基类。因为桌子和椅子都是家具,所以还得有一个家具抽象类,椅子和桌子就是加家具类具体的实现。 工厂方法模式在这个例子中的4个要素的类定义(下面会介绍):工厂抽象类 AbstractProcessingFactory工厂实现 WoodProcessingFacto

2020-11-23 19:42:16 157

原创 设计模式入门——单例模式

单例模式什么是单例模式?单例模式顾名思义就是整个类中有且仅有一个的实例对象。单例模式的三个要点:有且仅有一个私有实例构造方法是私有的,以保证不会被多次创建提供一个访问单例对象的公有静态方法单例模式分很多种,常见的有饿汉模式、懒汉模式、静态内部类单例模式和双重锁模式…  饿汉模式饿汉模式,这个比喻可以理解成人饥饿的时候立马就想要吃东西,放到代码里,可以说想要获取一个对象的时候立马就可以得到。饿汉模式中的Singleton对象作为静态成员变量,它在类加载时就已经初始化了,所以想要使用此

2020-11-23 19:37:50 188

原创 Scala学习总结(3)——函数式编程基础

3 函数式编程基础 在纯函数式编程语言里,变量就像数学语言里的代数符合,一经确定就不能改变。正是由于这种不可变性,使得函数和普通的值之间具有对等关系。这样函数就跟普通的值一样成为了“头等公民”,可以像任何其他数据类型一样被传递和操作。scala不是完全的函数式编程语言,它在架构的上层提倡采用面向对象编程,而在对数据和各种底层操作作中使用函数式编程,对变量的定义既可以使用val,也可以使用var,所以它并不要求变量不可变。但在实际操作中,scala建议多用val,少用var,这样可以降低出错的概率。 

2020-11-17 17:29:39 347

原创 Scala学习总结(2)——面向对象编程

2 面向对象编程scala在数据的处理上使用的是函数式编程思想,但在上层的架构组织中仍使用面向对象的模型,对于大型应用程序尤其重要。 类类的定义类的声明使用关键字 class:class Counter{ //这里定义类的字段和方法}Scala中建议类名首字母大写。要定义类的字段,使用var/val,和变量的定义一样。要定义类的方法,使用def 关键字。下面来定义一个完整的类:class Woman{ //定义类的字段 val sex = "fe

2020-11-16 17:24:31 329

原创 Scala学习总结(1)——基础知识

Scala 学习总结Scala运行于Java平台(JVM)上,兼容现有的Java程序,Scala代码可以调用Java方法,访问Java字段,继承Java类和实现Java接口。但是Scala也拥有像 Java 类似的特性,它集合了面向对象编程思想与函数式编程思想。scala具有如下几个特点:一切变量皆为对象:scala是一门纯粹的面向对象的语言,没有Java中的原生类型。语法简洁具有强大的并发性:能够更好地支持分布式系统 由于scala与java有很多的相似特性,故我在学习的过

2020-11-13 22:13:07 1482

原创 Hadoop安装 | 单机环境与伪分布式环境(Ubuntu系统)

Hadoop安装 | 单机环境与伪分布式环境(Ubuntu系统) 环境准备Ubuntu16.04 64位 、Hadoop2.9.2、jdk8这里使用的是虚拟机安装Ubuntu系统进行环境搭建。下载地址可以通过官网自行下载Hadoop:http://hadoop.apache.org/jdk8:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html也可以从百度云链接中下载链接:http

2020-10-19 22:29:33 382 1

原创 LeetCode | 209. 长度最小的子数组

题目描述给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。进阶:如果你已经完成了 O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。思路分析这里采用双指针+滑动窗口的方法。那么什么是滑动窗口呢?如图,以 s =

2020-10-19 14:12:13 244

原创 图床搭建 | 七牛云 + PicGo (使用Typora编辑文档)

图床搭建 | 七牛云 + PicGo (使用Typora编辑文档)七牛云七牛云实名认证后可以获取免费10G云存储空间,并且提供了30天的免费测试域名,但之后就会回收。首先进入七牛云官网,注册并登陆。七牛云:https://portal.qiniu.com/create进入以后选择对象存储服务点击新建空间,这个空间就用来存储图片。新建存储空间存储空间名称存储区域:选一个离自己近的就好访问控制:选择公开创建成功后,点击空间管理,点击对象存储,就可以开始

2020-09-23 14:11:03 539

原创 Matplotlib库的使用(基础部分)

引用:import matplotlib子库引用:import matplotlib.pyplot as plt线条plt库的plot(x,y)函数可以根据x,y来绘制直线和曲线,x与y是列表。eg:plt.plot([1,2,4],[1,2,3])其它参数:1、线型(linestyle / ls)常用的:linestyle='-' #实线,也是默认的。linestyle...

2020-04-07 21:59:36 590

原创 编程练习 - C++

#include <iostream>using namespace std;#include <ctime> // 引入随时数生成的扩展文件,否则会生成伪随机数。int main(){ srand((unsigned)int(NULL)); //根据电脑时间生成随机数 int num = rand()%99 + 1; ...

2020-03-16 18:24:25 646

原创 霍兰德人格分析:利用Python第三方库matplotlib绘制雷达图

美国约翰霍普金斯大学霍兰德教授认为,个人职业兴趣特性与职业之间应有一种内在的对应关系。根据兴趣的不同,人格可分为研究型(I)、艺术型(A)、社会型(S)、企业型(E)、传统型(C)、现实型(R)六个维度,每个人的性格都是这六个维度的不同程度组合。展示霍兰德人格分析最有效的工具是雷达图,以工程师、实验员、艺术家、推销员、社会工作者、记事员6个职业数据为例,利用Python第三方库matplot...

2019-08-13 19:54:16 4726 5

原创 使用pip工具以及遇到的一些问题

一、pip工具使用。pip是Python内置命令,要通过命令行来执行(不要在IDLE环境下运行pip程序)。接下来是一些常用命令,先打开cmd,输入相应指令。1、pip -h 或 pip——展示pip工具常用的命令2、pip install <库名>——安装第三方库3、pip uninstall <库名>——卸载第三方库4、pip install -...

2019-08-04 18:34:38 1334

原创 随机密码生成(Python编程)

一、问题描述。编写程序。在26个字母大小写和9个数字组成的列表中随机生成10个8位密码。二、问题分析。因为要在列表中随机生成密码,故需要将26个大、小写字母和9个数字存放在同一个列表中。首先使用string模块中的ascii_letters和digits方法来引入大、小写字母与0-9的数字,然后用list()函数将字符串转换为列表,编写一个函数,可以输入想要的随机密码的个数,然后利用ran...

2019-08-01 13:58:14 19179 1

原创 利用Python计算基本统计值

一、代码示例。from math import sqrt #引用math库中的开平方函数#获取用户输入def Inputnumbers(): numbers=[] #列表存放输入的这组数据 num...

2019-07-31 22:18:00 1422 2

原创 学习笔记:Python组合数据类型之序列类型

序列类型是一维元素向量,元素之间存在先后关系,通过序号访问(从0开始)。序列类型分为字符串、列表和元组。一、字符串(str)1、表示:单引号和双引号都可以表示单行字符串,两者作用相同。三引号可以表示单行或多行字符串。2、输入:input()函数将输入内容作为字符串,可以使用eval()函数来处理字符串。3、输出:print()函数可以直接打印字符串。字符串以Unicode编码存储,因...

2019-07-29 20:51:47 1376

原创 汉诺塔递归算法(Python编程)

一、问题描述。汉诺塔是学习计算机递归算法的经典入门案例,是一个数学难题。其问题为如何将所有圆盘从A移动到C,要求一次只能移动一个盘子,盘子只能在3个标杆(A/B/C)之间移动,更大的盘子不能放在更小的盘子上面。请用Python编写一个汉诺塔的移动函数,采用递归方法解决这个问题,要求输入汉诺塔的层数,输出整个移动流程。二、问题分析。如图,假设A上有5层的圆盘。首先,我们将A上的圆盘分为底层...

2019-07-26 17:13:03 29497 5

原创 羊车门问题(Python编程)

一、问题描述。有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么。参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择。请问:参赛者更换选择后能否增加猜中汽车的机会?二、问题分析。首先,问题要求我们算出更换选择与不更换选择时猜中汽车的概率,并进行比较。在三扇门里选一扇,而且不知道自己选的门后面是什么,之后主...

2019-07-21 12:51:15 12098

空空如也

空空如也

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

TA关注的人

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