摘要:
第二章主要学习内容是线性表,在这一章节里面,我们从顺序存储和链式存储两种存储方式对线性表进行深入的了解。分析2种存储结构在相同操作中时间复杂度的大小,再根据实际需求选择合适的存储结构。 // 顺序存储结构的定义typedef struct { int data[100]; // int *elem; 阅读全文
摘要:
回溯算法我觉得相对于动态规划和贪心算法较为简单,因为涉及的情况比较少,可以分为子集树,排列数,n叉树这三种情况去记忆,各种解法也有相应的模版可以套上去。 if (t > n) { // 具体的设置可能要根据数组赋值的实际情况 output(t); } else { if(满足走左子树) { // 约 阅读全文
摘要:
(参考的资料: https://blog.csdn.net/effective_coder/article/details/8736718) 1、贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。虽然贪心算法不能对所有问题都得到整 阅读全文
摘要:
在一个地图上有n个地窖(n≤200),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径,并规定路径都是单向的,且保证都是小序号地窖指向大序号地窖,也不存在可以从一个地窖出发经过若干地窖后又回到原来地窖的路径。某人可以从任意一处开始挖地雷,然后沿着指出的连接往下挖(仅能选择一条路径),当无连 阅读全文
摘要:
7-1 最大子列和问题 (20分) 给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1。“最大子列和”则被定义为所有连续子列元素的和中最大者。 例如给定序列{ -2, 11, -4 阅读全文
摘要:
1、分治思想相对于上个学期提升了一个等级,有些思想也变化了,比如说快排,归并排序,难度都有点提升了。归并排序上学期的话可能只是对有序数列进行排列,这学期的话归并和排序是结合在一起的,所以相对上学期的理解会有点难度,所以还需要一点时间去消化。 2、分组合作的话是一种新的模式,两个人相比一个人的优势在于 阅读全文
摘要:
对比之后发现华为公司的代码规范可能更加通俗易懂一点,所以以后会按照这种规范 https://blog.csdn.net/sdfgh2046/article/details/12424287 (华为公司的代码规范) 数学之美读后感 数学之美这本书写了好多与生活实际应用相关的问题,有指纹识别、网络爬虫、 阅读全文
摘要:
第八章主要学习排序的相关算法。 通过这章,了解到有很多比较好的排序方式,这章也比较强调对算法存储结构的理解,对算法的编写要求不是太大。 1、从插入排序来说 主要讲了直接插入排序和折半插入排序,希尔排序的话也了解了一下。插入排序的关键是“比较”和“后移”。比较就是对数的比较,基于要求进行升序或降序排列 阅读全文
摘要:
第七章的内容是查找。 查找可以分为3种。分别是线性表查找、树表查找、散列表查找。 1、线性表查找 线性表查找主要介绍了顺序查找和折半查找这两种方法。 1、 顺序查找区别于上学期学的方法,设置了哨兵,采用从后往前开始查找的方法,将时间复杂度缩短了一倍。(ASL=(n+1)/2) 2、折半查找,其实也叫 阅读全文
摘要:
第六章主要进行有关图的学习,这一章学得东西很多,涉及图的方方面面包括如何定义存储结构,如何初始化,如何建立一张图,如何进行图的操作等等。 6-1 主要学习了图的基本知识,不带权图包括有向图,无向图,带权图包括有向网络,无向网络。在求度的时候要注意无向图和有向图的区别,有向图包括入度和出度。 连通分量 阅读全文
摘要:
1、第五章主要学习了与树相关的知识,从二叉树拓展到一棵普通的树,再从一棵普通的树拓展到哈夫曼树,再从树拓展到森林的概念。5-1节学习了树和二叉树的定义,对节点,根节点,叶子结点,深度,度等概念进行了初步的了解。5-4节了解了与二叉树相关的一些性质,其中引出了完全二叉树与满二叉树的概念,从这一节开始也 阅读全文