![](https://img-blog.csdnimg.cn/fc0d18b9d7794fe9a9b945d5608e6683.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 87
相关算法与数据结构
Yoin.
这个作者很懒,什么都没留下…
展开
-
算法复杂度的介绍
复杂度也叫渐进复杂度,包括时间复杂度和空间复杂度,用来分析算法执行效率与数据规模之间的增长关系,可以粗略地表示,越高阶复杂度的算法,执行效率越低。常见的复杂度并不多,从低阶到高阶有:O(1)、O(logn)、O(n)、O(nlogn)、O()、O()、O()、O(n!)、O(n用来表示数据规模的大小f(n)表示代码执行次数的总和O用来表示正比的关系去掉所有加法项常数只保留最高阶项若最高阶存在,则去除最高阶前面的系数若与对数项带阶数,直接将阶数作为系数T()表示算法复杂度。原创 2024-03-21 19:23:13 · 1223 阅读 · 1 评论 -
排序问题—java实现
因此通过记录最后发生数据交换的位置就可以确定下次循环的范围了。由于pos位置之后的记录均已交换到位,故在进行下一趟排序时只要扫描到pos位置即可。原创 2024-03-18 19:26:37 · 930 阅读 · 0 评论 -
有关线性表的算法题
判断一个非空字符串是否是回文。原创 2024-03-11 10:11:35 · 883 阅读 · 0 评论 -
栈与队列的相关知识点
队列是只允许在一端进行插入,另一端进行删除操作的线性表,允许插入(入队、进队)的一端称为对尾,允许删除(出队)的一端称为队头。空队列:不含任何元素的队列ADTStackDataModel队列中元素具有相同类型及先进先出特性,相邻元素具有前驱和后继关系InitQueue输入:无功能:初始化队列,创建一个空队列输出:无输入:无功能:销毁队列,释放队列所占用的存储空间输出:无EnQueue输入:元素值x功能:在队尾插入一个元素输出:如果插入成功,队尾增加了一个元素;否则返回失败信息。原创 2024-03-11 10:09:27 · 915 阅读 · 0 评论 -
算法小题分析
sort(数组名, 起始下标, 终止下标, new cmp());基本方法int compare(Object o1, Object o2) 返回一个基本类型的整型如果要按照升序排序,则o1 小于o2,返回-1(负数),相等返回0,01大于02返回1(正数)如果要按照降序排序则o1 小于o2,返回1(正数),相等返回0,01大于02返回-1(负数)原创 2024-02-21 14:43:51 · 881 阅读 · 0 评论 -
枚举的应用
Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等。Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。原创 2023-03-09 13:33:21 · 28 阅读 · 0 评论 -
字符与字符串的包装类
(2)replace(new,old) 方法通过用 newChar 字符替换字符串中出现的所有 searchChar 字符,返回指定子字符串在此字符串中最右边出现处的索引,如果此字符串中没有这样的字符,则返回 -1;返回指定子字符串在此字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。(4)toCharArray(string) 方法将字符串转换为字符数组,(7)contains() 方法用于判断字符串中是否包含指定的字符或字符串。原创 2023-03-07 08:43:01 · 106 阅读 · 0 评论 -
记忆化搜索问题
例二:给定一个 n×m(n,m≤100) 的矩阵 A ,要求选择一个起点,然后选择上下左右四个相邻方向之一开始行走,并且要保证行走的点的值比当前点小,即找一条单调递减的路径,要求这条路径最长。斐波那契数列这个例子阐述了记忆化搜索的实现方式,并且提到了利用数组来记录已经计算出来的重叠子问题,这个和动态规划的思想非常相似,没错,记忆化搜索其实用的就是动态规划的思想。比如当以25为起点时,下一步可以是18,24,22,20,其中以18和24为起点的最长路路径前面已经记录,可以直接使用。原创 2023-02-03 15:17:29 · 39 阅读 · 0 评论 -
几种特殊的树
则平衡二叉树上所有结点的平衡因子只可能是-1,0,1。原创 2023-01-12 21:00:37 · 31 阅读 · 0 评论 -
二叉树的遍历
二叉树的前序遍历的记忆法则是“根左右",即先遍历根节点,再遍历左子树节点,再遍历右子树节点。以上图为例,前序遍历的结果是【A, B, D, E, C, F, G】原创 2022-12-24 15:02:55 · 29 阅读 · 0 评论 -
回溯算法的应用
回溯法从出发,以深度优先方式搜索整个。这个开始结点成为同时也成为。在当前扩展结点处,搜索向纵深方向移至一个新结点。如果在当前扩展结点处不能再向纵深方向移动,则当前扩展结点就成为。此时,回溯法以这种工作方式递归地在解空间中搜索,直至找到所要求的解或解空间中已无活结点时为止。解空间:(三种物品的所有可能)原创 2022-11-18 18:55:10 · 438 阅读 · 0 评论 -
贪心算法的应用
依此策略一直地做下去,直到背包装满为止。原创 2022-11-01 15:57:29 · 119 阅读 · 0 评论 -
动态规划的应用
若按第一种加括号方式((A1,A2)A3)计算,3个矩阵连乘积需要的数乘次数为10 X 100 X 5 + 10 X 5 X 50 = 7500。第二种加括号方式的计算量是第一种加括号方式计算量的10倍。如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,就可以避免大量重复计算。输入: s = “leetcode”, wordDict = [“leet”, “code”] 输出: true 解释: 返回 true 因为 “leetcode” 可以被拆分成 “leet code”。原创 2022-10-13 10:08:14 · 238 阅读 · 0 评论 -
蓝桥杯试题
组队 作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容。每位球员担任 1 号位至 5 号位时的评分如下表所示。请你计算首发阵容 1号位至 5 号位的评分之和最大可能是多少?分析:暴力破解每个球位的可能球员编号从1到20,计算评分之和前判断一下5个球位的球员编号是否互不相同。利用五重循环可以解决。import java.util.Scanner;public class Main { public static void m..原创 2022-01-20 22:16:27 · 8527 阅读 · 0 评论 -
栈和队列的算法问题
1.括号匹配【问题描述】假设一个算术表达式中可以包含三种括号:圆括号“(”和“)”,方括号“[”和“]”以及花括号“{”和“}”,且这三种括号可按任意的次序嵌套使用,如。判断给定表达式中所包含括号是否正确配对。【输入形式】一个算术表达式(中间没有空格)。【输出形式】该表达式中的括号是否正确配对。【样例输入】( { [ ] }【样例输出】NO【样例说明】当括号不匹配时,有可能左括号和有括号等长度不匹配,也有可能左括号长度大于右括号,还有可能是右括号长度大于左括号,所以出栈操原创 2021-12-04 12:08:57 · 1380 阅读 · 0 评论 -
图的基础知识
6.1图的逻辑结构6.2.1图的定义和基本术语1、图的定义图:由顶点的有穷非空集合和顶点之间边的集合组成无向边:表示为(vi,vj),顶点vi和vj之间的边没有方向无向图:图中任意两个顶点之间的边都是无向边有向边(弧):表示为<vi,vj>,从vi 到vj 的边有方向有向图:图中任意两个顶点之间的边都是有向边权:对边赋予的有意义的数值量带权图(网图):边上带权的图稠密图:边数很多的图稀疏图:边数很少的图2、图的基本...原创 2021-11-30 22:02:17 · 1412 阅读 · 0 评论 -
字符串的基础知识
4.1字符串4.1.1字符串的逻辑结构1.字符串的定义字符串是n个字符组成的有限序列,串中包含的字符个数为串的串的长度空串:长度为 0 的串,不包含任何字符空格串:有多个或一个空格组成,长度为空格数子串:串中任意个连续的字符组成的子序列主串:包含子串的串子串的位置:子串的第一个字符在主串中的序号字符串大小的比较:2.字符串的抽象数据类型定义ADT String DataModel 串中的数据元素仅由一个字符组成,相邻元素具有前驱...原创 2021-10-24 11:39:23 · 8845 阅读 · 0 评论 -
树的算法问题
1.前序打印叶子结点【问题描述】设计算法,要求按照前序遍历方式打印二叉树的叶子结点。【输入形式】一行字符串,该行是扩展二叉树的前序遍历序列,用于构造二叉树。【输出形式】二叉树的前序叶子遍历序列(中间用空格隔开)。【样例输入】AB#D##C##【样例输出】 D C#include <iostream>#include <string>using namespace std;int main() { string str; getlin...原创 2021-12-04 12:44:42 · 810 阅读 · 0 评论 -
字符串和多维数组的算法问题
1.字符串匹配(BF算法)【问题描述】给定两个字符串S和T,在主串中寻找字串T的过程称为模式匹配,T称为模式。如果匹配成功,返回T在S中的位置;如果匹配失败,返回0。【输入形式】两行,第一行是主串S,第二行是模式串T【输出形式】模式串T第一次出现在主串S中的位置。【样例输入】abcabcacb abcac【样例输出】4【样例说明】注意返回的是模式串在主串的位置,区别存储时的角标。【评分标准】注意读入字符时,有可能中间含有空格字符。所以可以用get...原创 2021-12-04 12:18:32 · 893 阅读 · 1 评论 -
树与二叉树基础知识
5.2树的逻辑结构5.1.1树的定义和基本术语1.树的定义在树中通常将数据元素称为结点树是n个结点的有限集合;当n=0时,称为空树。任意一颗非空树满足以下条件:有且仅有一个特定的根节点 当n>1时,除根结点之外的其余结点被分成m个互不相交的有限集合,其中每个集合又是一棵树,并成为这个根节点的子树。2.树的基本术语某结点所拥有的子树的个数成为该结点的度;数中各结点的最大值称为该树的度 度为0的结点称为叶子结点,也成为终端结点;度不为0的结点称为分支结点,也成为原创 2021-11-09 22:35:24 · 6100 阅读 · 0 评论 -
图的算法问题
1.基于邻接矩阵存储的有向图,求出度为零的顶点个数【问题描述】基于邻接矩阵存储的有向图,设计算法求出度为零的顶点个数。【输入形式】第一行输入图的顶点个数verNum和边的个数edgeNum,用于构造图。第二行顶点信息;接下来edgeNum行,每行描述一条边的信息,即起点、终点,以及边上的整型权值。【输出形式】出度为零的顶点个数。【样例输入】6 9A B C D E FA B 34A C 46A F 19B E 12C D 17C F 2...原创 2021-12-04 12:55:00 · 1011 阅读 · 0 评论 -
线性表的基础知识
2.1约瑟夫环问题约瑟夫环问题由古罗马史学家约瑟夫(Josephus)提出,他参加并记录了公元66—70年犹太人反抗罗马的起义。在城市沦陷之后,他和40名死硬的将士在附近的一个洞穴中避难。这些起义者表决说“要投降毋宁死”。于是,约瑟夫建议每个人轮流杀死他旁边的人,而这个顺序是由抽签决定的。约瑟夫有预谋地抓到了最后一签,并且,作为洞穴中的两个幸存者之一,他说服了他原先的牺牲品一起投降了罗马。模型抽象:设 n(n>0)个人围成一个环,n 个人的编号分别为1,2,…,n,从第 1 ..原创 2021-10-23 21:47:18 · 1343 阅读 · 1 评论 -
四舍五入的几种方法
四舍五入保留整数 通过使用+0.5后强制类型转换来实现(int)(num1 + 0.5)public class Main { static int sum = 0; public static void main(String[] args) { double num1 = 6.56468; double num2 = 2.185658; double num3 = 1.8232; double num4 ..原创 2022-02-21 18:38:42 · 3646 阅读 · 0 评论