- 博客(109)
- 收藏
- 关注
原创 2022-09-02-算法题-快速排序
其基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。二、将数组分割成两部分,一部分数据都小于或等于枢轴元素,另一部分数据都大于枢轴元素。快速排序(Quicksort)使用分治思想对冒泡排序作了改进,效率非常高。三、对分割的子数组递归地执行步骤一二,直到无法分割。一、选取一个枢轴元素(也叫基准元素)
2022-09-04 19:53:27
202
原创 2022-09-01-算法题-归并排序
归并排序是一种概念上最简单的排序算法,与快速排序一样,归并排序也是基于分治法的。归并排序将待排序的元素序列分成两个长度相等的子序列,为每一个子序列排序,然后再将他们合并成一个子序列。合并两个子序列的过程也就是两路归并。归并排序是一种稳定的排序算法,归并排序的主要问题在于它需要一个与待排序数组一样大的辅助数组空间。由于归并排序每次划分时两个子序列的长度基本一样,所以归并排序最好、最差和平均时间复杂度都是nlog2n。
2022-09-01 21:40:35
154
原创 2022-08-31-算法题-希尔排序
希尔排序也成为“缩小增量排序”,其基本原理是,现将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插入排序,待整个待排序列“基本有序”后,最后在对所有元素进行一次直接插入排序。希尔排序是对直接插入排序算法的优化和升级。所谓的基本有序,就是小的关键字基本在前面,大的基本在后面,不大不小的基本在中间,例如{2,1,3,6,4,7,5,8,9,}就可以称为基本有序了。但像{1,5,9,3,7,8,2,4,6}这样,9在第三位,2在倒数第三位就谈不上基本有序。...
2022-08-31 21:08:56
195
原创 2022-08-30-算法题-插入排序
插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。...
2022-08-30 21:32:42
208
原创 2022-08-29-算法题-选择排序
第一次需要检查n个元素,但随后检查的元素数依次为n - 1, n – 2, …平均每次检查的元素数为1/2 * n, 因此运行时间为 n * 1/2 * n,简单地写作 O(n^2)。选择排序原理即是,遍历元素找到一个最小(或最大)的元素,把它放在第一个位置,然后再在剩余元素中找到最小(或最大)的元素,把它放在第二个位置,依次下去,完成排序。选择排序的时间复杂度为 O(n^2)。......
2022-08-29 21:10:44
113
原创 2022-08-28-算法题-冒泡排序
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个,即需要进行length-1次。第二次是对n-1个数进行n-2次比较,进行到最后第n-1个的一个是最大的;持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。第一次是对n个数进行n-1次比较,进行到最后第n个的一个是最大的;如果第一个比第二个大,就交换他们两个。......
2022-08-28 20:48:31
116
原创 2022-08-27-算法题-两数之和
当我们使用遍历整个数组的方式寻找 target - x 时,需要注意到每一个位于 x 之前的元素都已经和 x 匹配过,因此不需要再进行匹配。这样我们创建一个哈希表,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。使用哈希表,可以将寻找 target - x 的时间复杂度降低到从 O(N)O(N) 降低到 O(1)O(1)。最容易想到的方法是枚举数组中的每一个数 x,寻找数组中是否存在 target - x。......
2022-08-26 20:41:20
79
原创 2022-08-23-jdk8新特性
(函数接口的参数列表 不需要写类型 需要定义参数名称)->{方法体}Fork join 将一个大的任务拆分n多个小的子任务并行执行,最后在统计结果,有可能会非常消耗cpu的资源,确实可以。并行流:多线程方式操作;串行流:单线程的方式操作;数据量比较少的时候。注意:数据量比较少的情况下,不要使用并行流。():函数方法参数列表。->分隔 {}方法体。
2022-08-23 20:28:31
523
原创 2021-06-08-前端生成二维码和条形码(一维码)
资源链接: https://pan.baidu.com/s/1zG4Bd3i3d0wq87Tt2t1zgg 提取码: qghk 复制这段内容后打开百度网盘手机App,操作更方便哦 --来自百度网盘超级会员v3的分享使用qrcode.js生成二维码 <style> #qrcode { width:160px; height:160px; margin-top:15px; }
2021-06-08 20:46:14
2370
2
原创 2021-06-08-服务注册与发现nacos
文章目录传统的rpc远程调用中存在哪些问题服务治理基本的概念服务注册中心的概念微服务调用接口常用名词Nacos的基本的介绍Nacos的启动传统的rpc远程调用中存在哪些问题1、超时的问题2、安全的问题3、服务与服务之间URL地址管理服务治理基本的概念在我们微服务架构通讯,服务之间依赖关系非常大,如果通过传统的方式管理我们服务的url地址的情况下,一旦地址发生变化的情况下,还需要人工修改rpc远程调用地址。每个服务的url管理地址发出复杂,所以这是我们采用服务url治理技术,可以实现对我们
2021-06-08 20:45:47
351
原创 2021-06-08-RPC和HTTP的关系
远程调用方式无论是微服务还是分布式服务(都是SOA,都是面向服务编程),都面临着服务间的远程调用。那么服务间的远程调用方式有哪些呢?常见的远程调用方式有以下几种:RPC:Remote Produce Call远程过程调用,类似的还有RMI(Remote Methods Invoke 远程方法调用,是JAVA中的概念,是JAVA十三大技术之一)。自定义数据格式,基于原生TCP通信,速度快,效率高。早期的webservice,现在热门的dubbo,都是RPC的典型RPC的框架:webservie
2021-06-08 20:45:08
797
2
原创 2021-06-08-微服务架构演变过程(二)
微服务架构产生的原因微服务架构基于SOA架构演变过来的在传统的Web Service架构中有如下问题:1.依赖中心化服务发现机制2.使用SOAP通讯协议,通常使用XML格式来序列化通讯数据,xml格式非常重,比较占宽带传输。3.服务化管理和治理设施不完善4、不适合于前后分离架构模式微服务架构基本概念1.项目架构模式:前后端分离:微服务项目架构:SpringCloud+ Vue前后端分离架构:拆分前端和后端不在是一个人开发,分成多个不同人开发。前端架构—后端架构---
2021-06-08 20:43:51
182
原创 2021-04-28-微服务架构演变过程(一)
演变过程传统单体架构——分布式架构——SOA面向服务架构——微服务架构模式传统架构传统架构: 就是我们在以前所学习到SSM、SSH 、分层架构模式。Com.mayikt.controller --控制层 控制页面跳转 整合ftl/jsp 渲染页面Com.mayikt.service —业务逻辑Com.mayikt.dao—数据访问层。 mybatis、hibernate等。前端到后端都是一个人开发的将所有的业务逻辑代码全部都放入在同一个jar包中,没有实现解耦,如果中间有一个小的模
2021-04-29 15:42:10
326
原创 2021-04-26-SpringCloud学习总结(三)
文章目录断路器-Hystrix(豪猪)Ribbon整合和hystrixFeign整合和hystrix断路器-Hystrix(豪猪)Ribbon整合和hystrixFeign整合和hystrix
2021-04-27 10:00:16
212
原创 2021-04-25-SpringCloud学习总结(二)
文章目录搭建服务注册中心 --EurekaEureka 简介Eureka原理搭建一个父工程继承SpringBoot父工程和SpringCloud父工程创建一个SpringBoot Web项目继承父工程搭建微服务-提供者Eureka自我保护机制服务消费者--Ribbon服务消费者--Feign服务消费Ribbon和Feign区别搭建服务注册中心 --EurekaEureka 简介Eureka 是 Netflix 出品的用于实现服务注册和发现的工具。 Spring Cloud 集成了 Eureka,并提
2021-04-27 09:59:39
275
原创 2021-04-24-SpringCloud学习总结(一)
什么是SpringCloudSpringCloud提供了一系列微服务开发的一站式解决方案。也是一系列主流框架的集合。SpringCloud解决了什么问题?在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统,SpringCloud就提供了这一系列的组件。什么是微服务简单来说,微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信
2021-04-27 09:59:12
222
原创 2021-04-22-mysql的视图、索引、触发器、存储过程、函数总结
视图视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表。视图是存储在数据字典里的一条select语句。 通过创建视图可以提取数据的逻辑上的集合或组合。视图的优点:1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。2.可以把复杂的查询变的简单3.维护数据的独立性,视图可从多个表检索数据。4.对于相同的数据可产生不同的视图。5.权限的控制创建视图语法如下CREATE VIEW 视图名称 AS 子查询
2021-04-22 15:08:15
343
原创 2021-04-20-JavaWeb项目跨域解决方案
1、为什么会有跨域问题的存在?JavaScript出于安全方面的考虑,不允许跨域调用其他项目的对象,即同源政策。所谓同源是指:协议相同,域名相同,端口相同。比如:http://www.example.com/zw/index.html协议是:http://域名是:www.example.com端口号是:80(默认端口可以省略),它的同源情况如下:http://www.example.com/zwxk/manager.html 同源https://www.example.com/zw/
2021-04-20 13:10:28
221
原创 2021-04-19-模拟Redis搭建集群
前言当你不行装多个Redis的时候,可以像我这样模拟一下redis集群搭建模拟Redis搭建主从集群+哨兵1、先准备一个总的放redis配置文件的文件夹,再建一个master和若干个slave文件夹2、再把redis.conf文件给每个文件夹都放一份3、master的配置文件要改的地方# 保护模式打开protected-mode no#注释本机绑定#bind 127.0.0.1# 端口号port 6380#后台运行daemonize yes #表示在集群中salve不
2021-04-19 08:59:02
170
原创 2021-04-17-Redis总结(四)
文章目录发布订阅内存管理--超时指令Reids设置超时Spring设置超时Redis做为缓存服务的使用查询删除Redis锁处理单体架构锁处理分布式锁处理Spring注解实现缓存服务器添加依赖启动添加开启缓存注解自定义缓存过期时间通过注解操作缓存具体操作发布订阅这个跟我们之前使用消息队列技术一样。主要有两个关键操作:消费者:订阅渠道subscribe channel1生产者:发布消息到渠道 publish channel1 “redis is good”内存管理–超时指令Reids设置超
2021-04-19 08:57:55
371
原创 2021-04-16-Redis总结(三)
文章目录Redis五大数据类型事务管理流水线(pipelined)Redis五大数据类型事务管理流水线(pipelined)
2021-04-19 08:57:06
131
原创 2021-04-15-Redis总结(二)
文章目录Java连接RedisSpring操作RedisJava连接Redis搭建Maven工程,引入相关的依赖<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version></dependency>使用Jedis提供的API操作Re
2021-04-19 08:56:30
147
原创 2021-04-13-Java如何操作RabbitMQ
文章目录Java操作RabbitMQ简单模式Work模式SpringBoot操作RabbitMQJava操作RabbitMQ依赖<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.4.3</version></dependency>简单模式
2021-04-13 08:49:19
123
原创 2021-04-12-初识消息中间件RabbitMQ
消息中间件RabbitMQRabbitMQ简介RabbitMQ安装RabbitMQ简介什么是MQ及RabbitMQMQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。
2021-04-12 08:38:22
173
原创 2021-04-11-FreeMarker模板引擎
介绍FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序。虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据,简单来讲就是模板加数据模型,然后输出页面(如下图)快速使用创建SpringBoot项目,引入FreeMarker依赖<!-- 添加freemaker依赖-->
2021-04-12 08:37:31
231
原创 2021-04-10-搜索技术solr
Solr的简介Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。Solr是Apache软件基金会下的子项目之一。工作原理solr是基于Lucence开发的企业级搜索引擎技术,而lucence的原理是倒排索引。那么什么是倒排索引呢?接下来我们就介绍一下lucence倒排索引原理。假设有两篇文章1和
2021-04-12 08:37:01
319
原创 2021-04-09-分布式文件服务器FastDFS
什么是FastDFSFastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。使用FASTDFS的公司有:支付宝,京东商城,赶集网,淘米网,迅雷,UC等等。FastDFS架构FastDFS架构包括 Tracker server和Storage server。客户端请求Tracker server进行文件上传、下
2021-04-09 09:00:41
245
原创 2021-04-08-Docker的基本命令
docker --help查看docker命令的帮助文档docker pull --helpdocker images查看本地所有的镜像-q只显示镜像的唯一标识信息docker search xxx去docker-hub上搜索镜像docker search tomcatdocker pull xxx[:tag]拉取指定的镜像到本地,如果不指定tag则表示拉取最新版(:latest)docker rmi 镜像名称/镜像id删除某个镜像或某几个镜像-f:表示强制删..
2021-04-08 08:57:05
112
原创 2021-04-07-Docker安装
Docker安装Linux安装软件的三种方式rpm工具yum工具安装源码包安装前置环境yum install -y yum-utils device-mapper-persistent-data lvm2安装docker源Docker有两个版本,ce版(社区版,免费),ee版(企业版,收费)yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2021-04-07 08:41:22
157
原创 2021-04-06-初识Docker
什么是Docker(虚拟化的技术)Docker时Docker.Lnc公司开源的一个基于LXC(Linux Container容器是一种内核虚拟化技术)技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。总体来说,Docker的接口相当简单,用户可以方
2021-04-06 08:53:56
101
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人