Python数据结构与算法
文章平均质量分 71
Python数据结构的学习笔记
菜鸟xk_110
无
展开
-
并查集基本实现
并查集概念并查集(Disjointset或Union−findsetDisjoint set 或 Union-find setDisjointset或Union−findset)是一种树形的数据结构,常用于处理一些不相交集合的合并及查询问题。主要包含以下两种操作:查询(FindFindFind):查询某个元素在哪个集合里合并(UnionUnionUnion):合并两个元素所在的不同的集合...原创 2021-01-18 15:37:45 · 214 阅读 · 2 评论 -
递归的应用——汉诺塔
中国大学MOOC,数据结构与算法(Python版)学习笔记课程网址:“https://www.icourse163.org/course/PKU-1206307812”问题描述汉诺塔问题是法国数学家于1883年,根据传说提出来的。传说在一个印度教寺庙里,有3根柱子,其中一根套着64个由小到大的黄金盘片,僧侣们的任务就是要把这一叠黄金盘从一根柱子搬到另一根,但有两个规则:一次只能搬1个盘子,大盘子不能叠在小盘子上。解决思路假设我们有5个盘子,穿在1#柱,需要挪到3 #柱;如果能有办法把最.原创 2020-12-31 16:00:03 · 215 阅读 · 1 评论 -
递归(上)
中国大学MOOC,数据结构与算法(Python版)学习笔记课程网址:“https://www.icourse163.org/course/PKU-1206307812”什么是递归递归是一种解决问题的方法,其精髓在于将问题分解为规模更小的相同问题,持续分解,直到问题规模小到可以用非常简单直接的方式来解决。递归的问题分解方式非常独特,其算法方面的明显特征就是:在算法流程中调用自身。递归为我们提供了一种对复杂问题的优雅解决方案,精妙的递归算法常会出奇简单,令人赞叹。初识递归:数列求和只是一个很简单.原创 2020-12-30 17:04:43 · 133 阅读 · 0 评论 -
基本结构——队列
队列及其Python实现什么是队列:队列是一种有次序的数据集合,其特征是新数据项的添加总发生在一端(通常称为“尾rear”端)而现存数据项的移除总发生在另一端(通常称为“首front”端)。当数据项加入队列,首先出现在队尾,随着队首数据项的移除,它逐渐接近队首。新加入的数据项必须在数据集末尾等待,而等待时间最长的数据项则是队首这种次序安排的原则称为(FIFO:First-infirst-out)先进先出或“先到先服务first-come first-served”队列的例子出现在我们日常生活的方原创 2020-12-29 16:18:52 · 405 阅读 · 0 评论 -
基本结构——栈
一. 什么是线性结构:线性结构是一种有序数据项的集合,其中每个数据项都有唯一的前驱和后继(除了第一个没有前驱,最后一个没有后继),新的数据项加入到数据集中时,只会加入到原有某个数据项之前或之后,具有这种性质的数据集,就称为线性结构。二. 栈(Stack):基本概念:栈就是一种有次序的数据项集合,是一种线性结构。在栈中 ,数据项的加入和移除都仅发生在同一端,这一端叫栈“顶(top)”,另一端叫栈“底(base)”。基本特点:离栈底越近的数据项,留在栈中的时间就越长,而最新加入栈的数据项会被最先移原创 2020-12-24 17:12:36 · 983 阅读 · 1 评论 -
算法分析
一. 什么是算法分析:程序和算法的区别:算法是对问题解决的分步描述程序则是采用某种编程语言实现的算法,同一个算法通过不同的程序员采用不同的编程语言,能产生很多程序算法分析主要就是从计算资源消耗的角度来评判和比较算法更高效利用计算资源,或者更少占用计算资源的算法,就是好算法计算资源指标:一种是算法解决问题过程中需要的存储空间或内存,但存储空间受到问题自身数据规模的变化影响,要区分哪些存储空间是问题本身描述所需,哪些是算法占用,不容易。另一种是算法的执行时间,我们可以对程序进行实际运行测试,获得原创 2020-12-23 15:27:40 · 2132 阅读 · 0 评论