- 博客(33)
- 收藏
- 关注
原创 Node爬虫GBK网页中文乱码
Node爬虫GBK网页中文乱码,有两种方式可以解决 一、使用superagent-charset模块其实 superagent-charset插件也用到了iconv-lite二、使用iconv-lite模块进行转码conv-lite是一个进行编码转换的模块(node 默认编码 utf-8)。需要decode的编码必须是Buffer类型...
2022-07-10 10:19:30
557
原创 鸡尾酒排序算法详解
一、什么是鸡尾酒排序1.概念鸡尾酒排序算法又叫快乐小时排序,它基于冒泡排序算法做了一些优化。冒泡排序算法每一轮都是从左到右进行元素比较,进行单向的位置交换,鸡尾酒排序算法则是双向的元素比较和交换。2.算法原理这是一个无序数列:2、3、4、5、6、7、8、1,我们要将它按从小到大排序。按照冒泡排序算法的思想,每一轮将最大的元素移到最右边。第一轮结果第二轮结果第三轮结果第四轮结果第五轮结果第六轮结果第七轮结果可以看到该序列2到8已经是有序的,但还需进行7轮排序,而鸡尾酒算
2020-08-07 10:26:48
4429
原创 十大经典排序算法-基数排序算法详解
十大经典排序算法十大经典排序算法-冒泡排序算法详解十大经典排序算法-选择排序算法详解十大经典排序算法-插入排序算法详解十大经典排序算法-希尔排序算法详解十大经典排序算法-快速排序算法详解十大经典排序算法-归并排序算法详解十大经典排序算法-堆排序算法详解十大经典排序算法-计数排序算法详解十大经典排序算法-桶排序算法详解十大经典排序算法-基数排序算法详解一、什么是基数排序1.概念基数排序(Radix Sort)是将待排序序列的每个元素统一为同样位数长度的元素,位数较短的通过补0达到
2020-07-27 16:40:12
7552
2
原创 十大经典排序算法-桶排序算法详解
一、什么是桶排序1.概念桶排序(Bucket sort)是计数排序算法的升级版,将数据分到有限数量的桶子里,然后每个桶再分别排序2.算法原理这是一个无序数列:11、38、8、34、27、19、26、13,我们要将它按从小到大排序先创建5个桶,桶的区间跨度=(最大值-最小值)/桶的数量,注意,每个桶的范围都是包含最小值,不包含最大值,最后一个桶,既包含最小值,也包含最大值遍历原始序列,将序列放入桶中每个桶内部的元素分别排序遍历所有桶,将桶中元素依次输出:8、11、13、19、26、27、
2020-07-16 11:07:50
17262
原创 十大经典排序算法-计数排序算法详解
一、什么是计数排序1.概念计数排序(Counting sort)是一种非基于比较的排序算法,其核心在于将输入的数据值转化为键存储在额外开辟的数组空间中以达到排序的效果2.算法原理给定一组取值范围为0到9的无序序列:1、7、4、9、0、5、2、4、7、3、4,建立一个长度为10的计数数组,值初始化为0遍历无序序列,将每个序列元素值对应的计数数组下标的元素加1如:第一个序列元素为1,则计数数组中下标为1的元素加1第二个序列元素为7,计数数组中下标为7的元素加1继续遍历序列,当序列遍历完毕,
2020-07-08 15:09:49
9355
3
原创 十大经典排序算法-堆排序算法详解
一、什么是堆排序1.概念堆排序(Heapsort)是利用二叉堆的概念来排序的选择排序算法,分为两种:升序排序:利用最大堆进行排序降序排序:利用最小堆进行排序2.算法原理给定一个最大堆如下图所示,以该最大堆进行演示堆排序首先,删除堆顶元素10(即最大的元素),并将最后的元素3补充到堆顶,删除的元素10,放置于原来最后的元素3的位置根据二叉堆的自我调整,第二大的元素9会成为二叉堆新的堆顶删除元素9,元素8成为最大堆堆顶删除元素8,元素7成为最大堆堆顶依次删除最大元素,直至所有
2020-07-01 17:01:46
12803
5
原创 二叉堆详解
一、什么是二叉堆二叉堆是完全二叉树或者是近似完全二叉树,它分为两个类型:最大堆最小堆最大堆是指任何一个父节点的值,都大于等于它左右孩子节点的值;最小堆是指任何一个父节点的值,都小于等于它左右孩子节点的值二、二叉堆的自我调整1.插入节点我们以下面的最小堆为例,插入元素新插入的元素为0,将新元素置于二叉堆最后一个位置我们让新元素与它的父节点比较,如果新元素小于父节点,则与父节点交换位置,否则调整结束新元素0与父节点5比较,0小于5,0与5交换位置新元素0继续与父节点2比较,0小于
2020-06-29 17:49:05
4031
4
原创 十大经典排序算法-归并排序算法详解
一、什么是归并排序1.概念归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法,归并排序对序列的元素进行逐层折半分组,然后从最小分组开始比较排序,合并成一个大的分组,逐层进行,最终所有的元素都是有序的2.算法原理这是一个无序数列:4、5、8、1、7、2、6、3,我们要将它按从小到大排序。按照归并排序的思想,我们要把序列逐层进行拆分序列逐层拆分如下然后从下往上逐层合并,首先对第一层序列1(只包含元素4)和序列2(只包含元素5)进行合并创建一个大序列,序列长度为两个小序列长度
2020-06-19 15:23:51
122628
27
原创 十大经典排序算法-快速排序算法详解
一、什么是快速排序1.概念快速排序(Quick Sort)是从冒泡排序算法演变而来的,实际上是在冒泡排序基础上的递归分治法。快速排序在每一轮挑选一个基准元素,并让其他比它大的元素移动到数列一边,比它小的元素移动到数列的另一边,从而把数列拆解成了两个部分2.算法原理这是一个无序数列:4、5、8、1、7、2、6、3,我们要将它按从小到大排序。按照快速排序的思想,我们先选择一个基准元素,进行排序我们选取4为我们的基准元素,并设置基准元素的位置为index,设置两个指针left和right,分别指向最左
2020-06-16 15:53:43
84309
12
原创 十大经典排序算法-希尔排序算法详解
一、什么是希尔排序1.概念希尔排序(Shell Sort)是把记录按下标的一定增量分组,对每组使用插入排序算法,随着增量逐渐减少,每组包含的元素越来越多,当增量减至1时,所有元素被分为一组,算法终止2.算法原理这是一个无序数列:1、5、8、4、7、2、6、3,我们要将它按从小到大排序。按照希尔排序的思想,我们先把数列进行分组排序首先,我们选择序列长度的一半4,作为增量进行分组如果所示,1和7一组,5和2一组,8和6一组,4和3一组,共四组然后,我们对每一组进行插入排序,排序后序列如下经
2020-06-10 14:40:37
12433
5
原创 十大经典排序算法-插入排序算法详解
一、什么是插入排序1.概念插入排序(Insertion Sort)是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入2.算法原理这是一个无序数列:1、5、4、2、6、3,我们要将它按从小到大排序。按照插入排序的思想,我们先指定有序序列,再将无序序列插入有序序列的相应位置将第一个元素1作为有序数据,此时有序区只有一个元素第一轮,让元素5和有序区依次比较,1<5,无需交换此时有序区有1、5两个元素第二轮,让元素4和
2020-06-04 14:50:01
12289
1
原创 十大经典排序算法-选择排序算法详解
一、什么是选择排序1.概念选择排序(Selection sort)是最简单直观的一种算法,基本思想为每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止2.算法原理这是一个无序数列:1、5、4、2、6、3,我们要将它按从小到大排序。按照选择排序的思想,我们要找到最小的元素,将它移到队首首先开始第一轮最小元素的比较先假定最小元素为第一个元素:1第一步:比较1和5,1比5小,最小元素为1第二步:比较1和4,1比4小,最小元素为1经过一轮比较后,找到1为最小的
2020-06-01 14:30:32
13828
原创 十大经典排序算法-冒泡排序算法详解
一、什么是冒泡排序1.概念冒泡排序(Bubble Sort)是排序算法里面比较简单的一个排序。它重复地走访要排序的数列,一次比较两个数据元素,如果顺序不对则进行交换,并一直重复这样的走访操作,直到没有要交换的数据元素为止。2.算法原理这是一个无序数列:1、5、4、2、6、3,我们要将它按从小到大排序。按照冒泡排序的思想,我们要把相邻的元素两两比较,根据大小来交换元素的位置首先开始第一轮比较第一步:比较1和5,1比5小,顺序正确,元素位置不变第二步:比较5和4,5比4大,顺序错误,交换元素位置
2020-05-30 10:18:51
23152
13
原创 centos安装MySQL 5.7
安装MySQL1.添加MySQL 5.7仓库sudo rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm2.确认MySQL仓库成功添加sudo yum repolist all | grep mysql | grep enabled如果看到上图输出,则添加成功3.安装MySQ...
2020-05-07 14:44:44
237
原创 Docker搭建Docker私库Registry
Docker搭建Registry私库1.创建Docker挂载目录mkdir /data/lib/registry2.启动Docker镜像// 启动Registry镜像,Docker会自动去hub.docker.com拉取registry:2镜像docker run -d -p 5000:5000 --restart=always --name registry -v /data/lib...
2020-05-07 10:55:14
466
原创 IDEA下lombok的安装和使用
一、简介Lombok是一种Java实用工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO)。它通过注释实现这一目的,通过在开发环境中实现Lombok,开发人员可以节省诸如编写构造器、getter、setter等方法的时间二、IntelliJ IDEA安装Lombok插件1.打开settings面板2.安装lombok插件安装好后,需重启才能生效3...
2020-04-27 18:17:16
715
原创 Docker搭建maven私库sonatype/nexus3及使用
一、部署docker镜像1.创建挂载目录mkdir /data/lib/nexuschown -R 200 /data/lib/nexus // nexus3的运行用户id为200,所以需要把数据目录的owner改为2002.启动服务docker run -d -p 8081:8081 --name nexus -v /data/lib/nexus:/nexus-data sonaty...
2020-04-25 14:28:40
2530
3
原创 windows查看端口号占用并释放端口
1.打开cmd2.查看端口号被占用netstat -aon | findstr #{port}本例中,查看端口号8080被占用情况,可以看到是被pid为13912的进程占用3.查看占用端口号的进程tasklist | findstr #{pid}本例的8080端口被java进程所占用4.杀死进程taskkill /f /t /im #{process}5.重复步骤二,...
2020-04-17 09:41:59
877
原创 centos搭建mongodb分片
安装前准备1.准备3台服务器3台服务器地址为rs0,rs1,rs22.生成密钥文件(用于集群内部安全认证)openssl rand -base64 756 -out ./mongodb-keyfilechmod 400 ./mongodb-keyfile密钥文件分别放于3台服务器/data/keys/目录下3.安装mongodb数据库mongodb安装参见:https://bl...
2020-03-31 18:03:04
309
原创 zookeeper安装
安装java1.下载最新版javajava地址:https://www.oracle.com/hk/java/technologies/javase-downloads.html下载最新版本jdk-14_linux-x64_bin.tar.gz2.解压java安装包tar -zxvf jdk-14_linux-x64_bin.tar.gz3.将java文件复制到安装目录cp jdk...
2020-03-25 11:14:57
200
原创 RabbitMQ安装
安装最新版本erlang1.添加yum源# In /etc/yum.repos.d/erlang.repo[erlang-solutions]name=CentOS $releasever - $basearch - Erlang Solutionsbaseurl=https://packages.erlang-solutions.com/rpm/centos/$releasever/$...
2020-03-23 12:20:30
159
原创 docker Dockerfile
1.定制镜像定制镜像可以通过docker commit和Dockerfile两种方式,推荐使用Dockerfile构建镜像。本章主要介绍使用Dockerfile定制镜像。Dockerfile是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明下面以一个例子来说明使用Dockerfile定制镜像。在一个空白目录中新建Dockerfile文件mkdir nginxTest...
2019-12-09 16:41:21
147
原创 docker容器
1.新建并启动容器docker run [OPTIONS] IMAGE [COMMAND] [ARG...]常见options说明-d:后台运行容器,并返回容器ID-i:让容器的标准输入保持打开,通常与-t同时使用-t:为容器重新分配一个伪输入终端,通常与-i同时使用-P:随机端口映射,容器内部端口随机映射到主机的高端口-p:指定端口映射,格式为:主机(宿主)端口:容器端口下...
2019-12-04 15:25:28
167
1
原创 docker镜像
1.镜像、容器、仓库镜像(Image):Docker镜像,就相当于是一个root文件系统。比如官方镜像ubuntu:16.04就包含了完整的一套Ubuntu16.04最小系统的root文件系统容器(Container):镜像和容器的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等仓库(Reposito...
2019-12-03 12:08:11
291
原创 git拉取远程分支到本地
1.更新远程跟踪分支git fetch origin [develop] // develop为远程仓库分支名2.查看分支git branch -a // -a显示本地和远程分支,默认只显示本地分支3.在本地创建分支dev并切换到该分支git checkout -b develop(本地分支名称) origin/develop(远程分支名称)...
2019-12-02 14:48:23
233
原创 Nginx配置socket长连接
通常nginx反向代理配置http中http { ... server { ... }}socket不能配在http中,要单独配一个stream,stream是通过tcp转发的,不是通过http转发的stream { upstream backend { server 127.0.0.1:9630; server 127.0.0.1:96...
2019-11-21 19:50:46
3030
原创 centos环境安装Docker
1、卸载旧版本sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ ...
2019-11-08 16:37:17
199
原创 搭建mongodb集群
1 准备3台服务器3台服务器地址为rs0,rs1,rs22 在三台服务器中安装mongodb2.1 添加mongo依赖到yum源中sudo touch /etc/yum.repos.d/mongodb-org-4.2.reposudo vim /etc/yum.repos.d/mongodb-org-4.2.repo(未安装vim:sudo yum install vim)[mong...
2019-10-16 20:59:54
220
原创 linux卡顿常见处理方法
这两天测试服务器非常卡,项目完全跑不起来,花了一上午查找问题,记录一下linux服务器卡顿常见的解决方法。1.查看磁盘空间df -lh如果是磁盘空间不足,则查找具体占用磁盘的文件du -lh --max-depth=12.查看内存使用情况free -m // -m内存单位为MB当free值较小时,则要注意内存的使用,是否需要加内存3.查看CPU使用情况top主要查看第三...
2019-08-06 21:27:09
10288
原创 MongoDB新建用户报错
MongoDB新建用户报错:Error: couldn't add user: Use of SCRAM-SHA-256 requires undigested passwords :需要修改加密方式db.createUser({ user: "admin", pwd: "xxxxx", roles:[{ role: "readWrite", ...
2019-08-02 17:47:42
1902
原创 配置Nginx的SSL模块
1.Nginx报错最近在给Nginx配置https遇到一个报错,记录一下处理方法。报错内容:nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx_bat.conf:56这是由于缺少ngx_http_ssl_module模块,编译安装的时候带上–with-h...
2019-07-24 21:17:13
185
原创 git修改远程仓库地址
公司git仓库地址修改了域名,记录一下相关的处理方法一、直接修改远程仓库地址查看远程仓库地址git remote -v修改远程仓库地址git remote set-url origin [url]二、先删除再修改地址git remote rm origingit remote add origin [url]三、直接修改配置文件进入项目根目录vim .git/confi...
2019-07-02 10:56:50
1362
1
原创 Nginx安装教程
1.下载最新版的nginx压缩包(https://nginx.org/en/download.html)sudo yum -y install wgetsudo wget -c https://nginx.org/download/nginx-1.15.8.tar.gz2.安装依赖环境sudo yum install gcc-c++sudo yum install -y pcre pc...
2019-06-16 17:52:25
371
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人