数据结构与算法
文章平均质量分 67
介绍基础数据结构与算法
算法小筑
爱看书, 爱学习!!!
展开
-
离散数学基础-集合
离散数学基础-集合1、集合定义: 由不同对象聚集而成的一个整体, 集合中的对象成为成员或元素.x属于集合S, 记为x∈S,x不是集合S中的成员记为x∉S。比如S={1, 2, 3}, 2∈S, 集合中的元素是唯一的,如{1,2,3,4,1} = {1,2,3,4} = {4,3,2,1}, 集合是无序的. 说明: 有的把包含多个相同元素的集合称为多重集.是集合的一种变体.2、常见集合表示Ø表示空集合, 即集合中不包含任何元素.Z表示整数集合, 即集合{1,2,3,-1,-2,-3,0}.R表原创 2021-04-12 08:45:10 · 2443 阅读 · 0 评论 -
算法中的数学基础知识
在开始讲算法前,先说说数学知识,数学是基础. 可以理解成计算机是数学的一个发展应用方向.闲话少说咱们开始.1、求和公式及性质前n项和 a1+a2+a3+a4+…+an用下面方式表示初中学过前n项和公式 n(n+1)/2.即首相1加末相n,乘n除二.无限数列a1+a2+a3+…记做极限形式说明: 当此极限存在时称为收敛,不存在时称为发散.当|ak|(表示取绝对值),无限数列收敛,我们就它为绝对收敛级数.2、线性性质对于任意实数c和任意有限序列a1,a2,…an和b1,b2,…bn,原创 2021-04-09 10:14:07 · 1802 阅读 · 0 评论 -
动态规划是啥?
01 动态规划动态规划(dynamic programming)与分治法相似, 都是通过组合子问题的解来求解原问题. 分治方法将问题划分为互不相交的子问题, 递归地求解子问题, 在将它们的解组合起来, 求出原问题的解. 而动态规划应用与子问题重叠的情况, 即不同的子问题具有公共的子问题. 对于分治法来说会重复的计算公共的子问题. 而动态规划对子问题只求解一次, 将结果保存到表格中(相当于缓存),以后用的时候直接取出即可.动态规划通常用来求解最优化问题. 比如咱们使用地图导航寻找最短路径问题等.动态规划原创 2021-04-07 09:07:54 · 153 阅读 · 0 评论 -
排序算法-堆排序与优先队列
01 开门见山堆排序的时间复杂度是O(n*lgn). 因为堆排序是树形结构. "堆"的数据结构来进行信息管理.不仅用在堆排序中, 而且也可以构造一种有效的优先队列.02 堆(二叉)堆是一个数组, 可以看成近似完全的二叉树. 树上的每个结点对应数组中的一个元素. 该树是从左向右填充. 如图:左边是二叉树的形式,右边是数组的形式, 此为大顶堆.最大堆就是父结点大于等于子结点的堆.最大元素是在树的根节点.最小堆就是父结点小于等于子结点的堆.最小元素是在树的根节点.建立最大堆过程 如图:图a原创 2021-04-06 08:35:08 · 209 阅读 · 0 评论 -
算法在计算中的作用
01 算法算法就是任何正确定义的计算过程.该过程取某个值或值的集合作为输入并产生输出.02 算法解决哪些问题人类基因工程已经取得很大进展, 目标是识别人类DNA中的所有10个基因,确定DNA的30亿个化学基对的序列, 在数据库中存储这类信息并为数据分析开发工具. 这些工作是要用到复杂的算法. 用好的算法可以节省人力,物力,财力.互联网借助算法可以管理和处理海量的数据.包括数据传输寻找好的路由,像使用google来快速找到特定信息所在的网页.电子商务使得交易可以用电子方式进行, 核心技术包括公钥密码原创 2021-04-01 08:50:33 · 914 阅读 · 0 评论 -
分治法解决最大子数组问题
咱们在回忆下分治策略:分解(Divide)步骤:将问题划分为一些子问题,子问题的形式与原问题一样,只是规模更小解决(Conquer)步骤:递归地求解出子问题。如果子问题的规模足够小,则停止递归,直接求解合并(Combine)步骤:将子问题的解组合成原问题的解最大子数组问题:有这么一个数组:[13, -3, -25, 20, -3, -16, -23, 18, 20, -7, 12, -5, -22, 15, -4, 7]数组中要包含负数, 要不没有意义. 全是正数的数组求和即可.求出数组中连原创 2021-03-31 15:16:30 · 1637 阅读 · 0 评论