3. 基础算法
3.1 查找概述查找算法是一种在数据集中寻找特定数据项的方法。通常,数据集是在计算机程序中存储的,例如数组、链表或散列表。在编写程序时,查找算法是非常重要的,它有助于快速找到所需的数据。在本文中,我们将介绍一些基本的查找算法及其特点。
线性查找线性查找也称为顺序查找,是一种最简单的查找算法。在这种算法中,我们从数据集的开头开始,逐个比较每个数据项,以寻找要查找的数据。如果我们找到了目标数据,查找过程就结束了。如果我们到达数据集的末尾,仍然找不到目标数据,则可以认为它不存在于数据集中。
线性查找的时间复杂度是O(n),其中n是数据集的大小。因此,它在大型数据集中可能会很慢。然而,在小型数据集中,它仍然是一种非常有用的算法。
二分查找二分查找也称为折半查找,是一种更快速的查找算法。但前提是,数据集必须已经排序。在二分查找中,我们取数据集的中间值,然后将目标与中间值进行比较。如果目标小于中间值,则在左侧子集中继续查找;如果目标大于中间值,则在右侧子集中继续查找。每次比较都会缩小要搜索的数据集的大小。
二分查找的时间复杂度是O(log n),其中n是数据集的大小。这种算法在大型数据集中非常有效 ...
2. 基础数据结构
2.1 数组1) 概述定义
在计算机科学中,数组是由一组元素(值或变量)组成的数据结构,每个元素有至少一个索引或键来标识
In computer science, an array is a data structure consisting of a collection of elements (values or variables), each identified by at least one array index or key
因为数组内的元素是连续存储的,所以数组中元素的地址,可以通过其索引计算出来,例如:
1int[] array = {1,2,3,4,5}
知道了数组的数据起始地址 $BaseAddress$,就可以由公式 $BaseAddress + i * size$ 计算出索引 $i$ 元素的地址
$i$ 即索引,在 Java、C 等语言都是从 0 开始
$size$ 是每个元素占用字节,例如 $int$ 占 $4$,$double$ 占 $8$
小测试
1byte[] array = {1,2,3,4,5} ...
本地无法连接Mysql的原因
重启 docker : systemctl restart docker
查看docker中的容器 :docker ps
启动指定容器 docker start mysql 再次查看其中的容器
进行连接
1. 初识算法
1. 什么是算法定义 : 在数学和计算机科学领域,算法是一系列有限的严谨指令,通常用于解决一类特定问题或执行计算
In mathematics and computer science, an algorithm (/ˈælɡərɪðəm/) is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation.1
Introduction to Algorithm2
不正式的说,算法就是任何定义优良的计算过程:接收一些值作为输入,在有限的时间内,产生一些值作为输出。
Informally, an algorithm is any well-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, ...
SpringCloud 篇
1、什么是Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。
2、什么是微服务微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分为一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API),每个服务都围绕着具体的业务进行构建,并且能够被独立的构建在生产环境、类生产环境等。另外,应避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储。
3、SpringCloud 有什么优势使用 Spring Boot 开发分布式微服务时,我们面临以下问题
(1)与分布式系统相关的复杂性-这种开销包括网络问题,延迟开销,带宽 ...
博客日志
时间轴样式
2024-09-10 10:11
添加碎碎念页面 ,并修复其不展示问题
2024-09-03 14:06
前两天引入的LATEX数学公式时灵时不灵 ,开始使用主题自带的数学公式 mathjax
2024-09-01 17:27
引入LATEX数学公式
2024-08-27 07:33
买了个域名用来访问自己的博客 ,并且部署在了netlify 访问速度的话对于我来说足够用了
2024-08-24 08:53
重新更改下版权样式
2024-08-21 08:14
路过图床还是不用的好 ,老是吞图片
2024-08-13 10:24
闲来无事 ,新增藏宝阁样式页面
2024-08-09 21:07
重新调整了下标签样式
2024-08-09 11:14
刚好没什么事 ,魔改了下友链样式
2024-08-05 20:36
看看明天有时间没 ,有时间的话就把最后的尾巴也给重写一下!
2024-08-05 17:26
今天把主题给重构了一下 ,主要是以阅读为主 ,基本上每个版块都进行的小小的重构 ,其他的等后续有时间了再慢慢进行更改
2024-07-28 20 ...
SpringBoot篇
1、为什么要用 SpringBootSpring Boot 优点非常多,如:
一、独立运行
Spring Boot 而且内嵌了各种 servlet 容器,Tomcat、Jetty 等,现在不再需要打成 war 包部署到容器中,Spring Boot 只要打成一个可执行的 jar 包就能独立运行,所有的依赖包都在一个 jar 包内。
二、简化配置
spring - boot - starter - web 启动器自动依赖其他组件,简少了 maven 的配置。
三、自动配置 Spring Boot 能根据当前类路径下的类、jar 包来自动配置 bean,如添加一个 spring-boot-starter-web 启动器就能拥有 web 的功能,无需其他配置。
四、无代码生成和 XML 配置
Spring Boo t配置过程中无代码生成,也无需 XML 配置文件就能完成所有配置工作,这一切都是借助于条件注解完成的,这也是Spring4.x 的核心功能之一。
五、应用监控
Spring Boot 提供一系列端点可以监控服务及应用,做健康检测。
2、Spring Boot 的核心注解是哪个?它 ...
Spring 篇
1、什么是 spring?Spring 是个 java 企业级应用的开源开发框架。Spring 主要用来开发 Java 应用,但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java 企业级应用开发,并通过 POJO 为基础的编程模型促进良好的编程习惯。
2、你们项目中为什么使用 Spring 框架?这么问的话,就直接说 Spring 框架的好处就可以了。比如说 Spring 有以下特点:
轻量: Spring 是轻量的,基本的版本大约 2 MB。
控制反转: Spring 通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
面向切面的编程 (AOP) : Spring 支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
容器: Spring 包含并管理应用中对象的生命周期和配置。
MVC 框架:Spring 的 WEB 框架是个精心设计的框架,是 Web 框架的一个很好的替代品。
事务管理: Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。
异常处理: Spring ...
MyBatis篇
1、什么是 MyBatis(1)Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。
(2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
(3)通过 xml 文件或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中 sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并返回。(从执行 sql 到返回 result 的过程)。
2、说说 MyBatis 的优点和缺点优点:
(1)基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL 写在 XML 里,解除 sql 与程序代码的耦合,便于统一管理;提 ...
网络篇
1、HTTP 响应码有哪些?分别代表什么含义?
200:成功,Web 服务器成功处理了客户端的请求。
301:永久重定向,当客户端请求一个网址的时候,Web 服务器会将当前请求重定向到另一个网址,搜索引擎会抓取重定向后网页的内容并且将旧的网址替换为重定向后的网址。
302:临时重定向,搜索引擎会抓取重定向后网页的内容而保留旧的网址,因为搜索引擎认为重定向后的网址是暂时的。
400:客户端请求错误,多为参数不合法导致 Web 服务器验参失败。
404:未找到,Web 服务器找不到资源。
500:Web 服务器错误,服务器处理客户端请求的时候发生错误。
503:服务不可用,服务器停机。
504:网关超时。
2、Forward 和 Redirect 的区别?浏览器 URL 地址: Forward 是服务器内部的重定向,服务器内部请求某个 servlet,然后获取响应的内容,浏览器的 URL 地址是不会变化的;Redirect 是客户端请求服务器,然后服务器给客户端返回了一个 302 状态码和新的 location,客户端重新发起 HTTP 请求,服务器给客户端响应 location 对 ...
Maven篇
1、什么是 maven ?maven 主要服务于基于 java 平台的项目构建,依赖管理和项目信息管理。
maven 项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。它包含了一个项目对象模型,一组标准集合,一个项目生命周期,一个依赖管理系统和用来运行定义在生命周期阶段中插件目标的逻辑。当使用 Maven 的时候,你用一个明确定义的项对象模型来描述你的项目,然后 Maven 可以应用横切的逻辑,这些逻辑来自于一组共享的(或自定义的)插件。
2、Maven 能为我们解决什么问题?①添加第三方 jar 包
按照最原始的做法,我们是手动复制 jar 包到项目 WEB-INF / lib 下,每个项目都会有一份,造成大量重复文件。而 Maven 将 jar 包放在本地仓库中统一管理,需要jar包只需要用坐标的方式引用即可。
②jar 包之间的依赖关系
jar 包之间往往不是独立的,很多 jar 需要在其他jar包的支持下才能够正常工作,称为 jar 包之间的依赖关系。如果我们手动去导入,要知道 jar 包之间的依赖关系并一一导入是及其麻烦而且容易 ...
MySQL篇
1、数据库的三范式是什么第一范式:列不可再分
第二范式:行可以唯一区分,主键约束
第三范式:表的非主属性不能依赖与其他表的非主属性外键约束且三大范式是一级一级依赖的,第二范式建立在第一范式上,第三范式建立第一第二范式上。
2、MySQL 数据库引擎有哪些如何查看 MySQL 提供的所有存储引擎
1mysql> show engines;
MySQL 常用引擎包括:MYISAM、Innodb、Memory、MERGE
MYISAM:全表锁,拥有较高的执行速度,不支持事务,不支持外键,并发性能差,占用空间相对较小,对事务完整性没有要求,以select、insert 为主的应用基本上可以使用这引擎
Innodb:行级锁,提供了具有提交、回滚和崩溃回复能力的事务安全,支持自动增长列,支持外键约束,并发能力强,占用空间是MYISAM 的 2.5 倍,处理效率相对会差一些
Memory:全表锁,存储在内容中,速度快,但会占用和数据量成正比的内存空间且数据在 MySQL 重启时会丢失,默认使用 HASH索引,检索效率非常高,但不适用于精确查找,主要用于那些内容变化不频繁的代码表
...