数据结构与算法
文章平均质量分 73
数据结构的一些知识点总结
我的Coder小屋
本科阶段:延安大学(2015-2019),摸鱼四年。
研究生阶段:西北大学(2019-2022),还未结束,主编程语言Java
展开
-
前缀和讲解(一维和二维的情况)
前缀和1概念 顾名思义,前缀和就是数组当前位置前的所有位置之和,一般用于动态规划的题中,理解前缀和对某些题就可以直接套用模板来做了。2 初始化 在一维数组中,比如[1, 2, 3, 4]的前缀和树组就是[0, 1, 3, 6, 10];在二维中同理前缀和数组要比给定数组长度大一,这是方便写转移方程。3 应用场景 在一维数组中,常常用于求数组中索引从i到j的总和,sumRange(i, j)= sum[j + 1] - sum[i],即索引i到j的和等于前j + 1个元素的和减去前i个原创 2021-07-23 08:31:57 · 201 阅读 · 1 评论 -
旅行商问题
旅行商问题(动态规划思想)1 问题描述 旅行商问题即TSP问题,假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径花费为所有路径之中的最小值。示例:输入:40 2 6 52 0 4 46 4 0 25 4 2 0输出:13,表示走一圈消耗的最小花费。2 问题分析 由于每个城市都会访问到,因此从哪个城市出发都行,假设从顶点s出发,令dp[i, V]表示从顶点i出发经过点集合V原创 2021-07-15 17:53:33 · 3607 阅读 · 1 评论 -
回溯法概述
回溯法1 相关题目78.子集90.子集II2 背景 有时候会遇到这样一类的题目,它的题目可以分解,但是又不能得出明确的动态规划或者递归解法,此时可以考虑回溯法。在许多情况下,回溯法相当于穷举搜索的巧妙实现,性能一般不理想。3 一般步骤回溯法可以认为是一个有过剪枝的DFS过程描述解的形式,定义一个解空间,它包含问题的所有解。构造状态空间树构造约束函数。通过DFS思想完成回溯。...原创 2021-07-15 17:52:25 · 108 阅读 · 0 评论 -
最小生成树
最小生成树1 什么是最小生成树 一个有n个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有n个结点,并且有保持图连通的最小的边。这就是图的最小生成树。最小生成树可以用Kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。1.1 具体描述 在一给定的无向图G=(V,E)中,(u,v)代表连接顶点u与顶点v的边,而w(u,v)代表此边的权重,若存在T为E的子集且为无循环图,使得W(T)最小,则此T为G的最小生成树。最小生成树其实是最小权重生成树的简称。1.2 性质原创 2021-07-15 17:51:36 · 602 阅读 · 0 评论 -
排序算法总结
排序算法总结问题一:冒泡排序的优化1 分类内部排序:整个排序工作能够在主存中完成冒泡排序、快速排序、直接插入排序、希尔排序、简单选择排序、堆排序、归并排序外部排序:在磁盘上或者磁带上完成的排序计数排序、桶排序、基数排序区别:(引自十大经典排序算法)n:数据规模k:"桶"的个数In-place:占用常数内存,不占用额外内存Out-place:占用额外内存稳定性:排序后 2 个相等键值的顺序和排序之前它们的顺序相同2 内部排序2.1 冒泡排序思想原创 2021-07-15 17:35:06 · 81 阅读 · 0 评论