
数据结构算法详解
文章平均质量分 81
程序 = 数据结构 + 算法。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
数据结构是计算机存储、组织数据的方式。
女程序员jingyu
BAT研发工程师一枚
展开
-
数据结构算法--树详解
二叉树:有序树;每个节点最多有2个子节点,子节点有左右之分。二叉树第i层有2^(i - 1)个节点。假如二叉树深度为K,则二叉树最多有2^(K - 1)个节点。原创 2024-03-22 15:46:02 · 644 阅读 · 0 评论 -
数据结构算法--图详解
图G由顶点集合V和边集合E组成,记为。:有向图和无向图。,如果,则G’为G的子图。:n(n - 1)条边的有向图。:n(n - 1) / 2条边的无向图。:图的每条边带有权值。:无向图,一条边的两点互为邻接点。:顶点v到顶点v'的边的权值和为路径长度。:无向图G,如果顶点v到顶点v'存在路径,则两顶点连通。G是一个连通图, G中的极大连通子图为连通分量。:有向图G,如果顶点v到顶点v'存在路径,则两顶点强连通。强连通图只有一个连通分量。原创 2024-01-15 18:00:51 · 1414 阅读 · 0 评论 -
数据结构和算法详解
数据结构算法--线性结构详解-优快云博客数据结构算法--查找详解-优快云博客数据结构算法--排序详解-优快云博客数据结构算法--动态规划详解-优快云博客数据结构算法--递归、分治、贪心、回溯和枚举详解-优快云博客原创 2023-12-29 15:47:09 · 396 阅读 · 0 评论 -
数据结构算法--线性结构详解
线性表,只允许在一端进行插入或删除操作,后进先出线性表,只允许在一端(队尾)进行插入,在另一端(队首)进行删除,先进先出} SqQueue;}LinkNode;}LinkQueue;} SqQueue;字符串是由零个或者多个字符组成的有序序列。原创 2023-12-15 17:23:57 · 1046 阅读 · 0 评论 -
数据结构算法--递归、分治、贪心、回溯和枚举详解
顾名思义,分而治之;将复杂大问题分成两个或多个相似小问题,各个子问题相互独立,先求解小问题,最后求解大问题。大问题复杂度过高,则分解为各个子问题,每个子问题寻找最优解,合并为全局解,全局解不一定最优。针对每一步搜索试探解决方案,如果不满足期望结果,则回溯回去重新选择。将问题所有可能的答案枚举,根据条件判断是否合适,合适则保留,否则丢弃。原创 2023-12-22 15:44:35 · 979 阅读 · 0 评论 -
数据结构算法--动态规划详解
如果text1[i] == text2[j],则问题进一步拆分为求解text1的[1, i - 1]和text2的[1, j - 1]的最长公共子序列 + 1,即f[i][j] = f[i - 1][j - 1] + 1;= text2[j],则求解text1的[1,i]和text2的[1,j]最长公共子序列长度无法延长,因此f[i][j]就会继承f[i - 1][j]与f[i][j - 1]中的较大值,即f[i][j] = max(f[i - 1][j],f[i][j - 1]);原创 2023-12-11 17:23:23 · 1498 阅读 · 0 评论 -
数据结构算法--查找详解
备注:k -= 2即在[mid + 1, high]内元素个数为n - F[k - 1] = F[k] - 1 - F[k - 1] = F[k] - F[k - 1] - 1 = F[k - 2] - 1个;中间结点的key值在两个跟结点key值之间;有序列表arr,长度为F[k] ,给定值k,k与F[k - 1] 位置(mid = low + F[k - 1] - 1)元素比较;每个结点内,n为关键字个数,Ki为关键字,Pi为父结点,其指向关键字满足(Ki, Ki + 1]或[Ki, Ki + 1);原创 2023-12-01 14:31:28 · 997 阅读 · 0 评论 -
数据结构算法--排序详解
bucket_size = 10,则桶序列可以存放{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}在第1个元素~第n个元素中,选取最小元素和第1个元素进行元素交换和下标交换;重复上述步骤,直到新元素等于或大于已排序元素,则新元素插入此已排序元素前;堆顶元素与最后一个元素交换,得到有序区的堆顶元素和无序区的其余元素。稳定 :原始序列,a在b前面且a=b,排序之后a仍然在b前面。每趟排序的待排序列为若干长度子序列,子序列内部为直接插入排序;取下一新元素,在已排序元素的序列中从后向前扫描。原创 2023-11-24 16:58:31 · 920 阅读 · 1 评论