![](https://img-blog.csdnimg.cn/2021071508325650.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构和算法
文章平均质量分 90
算法的一些笔记和总结
晓风残月淡
这个作者很懒,什么都没留下…
展开
-
数据结构笔记(二):线性表的抽象和代码实现
ADT List {数据对象:{ai|ai∈ElemSet,i=1,2,...,n,n≥0}数据关系:{|ai-1,ai∈D,i=2,...,n}基本操作:操作结果:构造一个空的线性表L初始条件:线性表已存在操作结果:销毁线性表L初始条件:线性表L操作结果:将L重置为空表初始条件:线性表L已存在操作结果:若L为空表,则返回true,否则返回false初始条件:线性表L已存在操作结果:返回L中数据元素个数初始条件:线性表L已存在。..............................原创 2022-08-04 22:57:10 · 462 阅读 · 0 评论 -
数据结构笔记(一):用案例开始认识数据结构、并认识抽象数据类型
1;0;-2;函数类型函数名(函数参数列表){//函数说明语句序列}//函数名为了便于描述算法,除了值调用方式外,增加了C++语言引用调用的参数传递方式。在形参表中,以“&”打头的参数即为引用参数。传递引用给函数与传递指针的效果是一样的,形参变化实参也发生变化,但引用使用起来比指针更加方便、高效。数据对象D={|e1,e2∈R,R是实数集}数据关系S={|e1是复数的实部,e2是复数的虚部}基本操作操作结果。.................................原创 2022-07-15 16:50:12 · 993 阅读 · 0 评论 -
排序算法:快速排序、归并排序、计数排序详解
(1)快速排序是应用最广的排序算法,它流行的原因是当数据量n很大时,它是原地排序,只占用lgN的辅助栈空间,属于是O(nlogn)时间复杂度的先进排序。(2)如果中枢值(pivot)选取不对,那么性能受到严重影响,时间复杂度劣化为O(n2)特点:快速排序是对冒泡排序的改进,时间复杂度O(nlgn),最糟糕的情况下会降到O(n2)。平均时间在所有先进方法中属于最好的。原创 2021-07-15 08:18:17 · 858 阅读 · 0 评论 -
动态规划详解
动态规划一、概述1.动态规划是什么?动态规划(dynamic programming)应用于子问题重叠的情况,即不同的子问题具有公共的子子问题。将问题分解成小问题,并先着手解决这些小问题2.动态规划应该怎么做?解决存储问题,找出数组元素的含义找出元素之间的递推式寻找初始值,按顺序从小到大算3.动态规划的常规步骤?刻画一个最优解的结构特征递归地定义最优解的值计算最优解的值,通常采用自底向上的方法利用计算出得信息构造一个最优解4.最优子结构是什么?问题的最优解由相关子问题的最原创 2021-07-14 19:22:24 · 2441 阅读 · 0 评论 -
JAVA算法思想总结:穷举、递推、递归、概率、分治
穷举是最简单的一种算法,依赖计算机的强大计算能力,来穷尽每一种可能的情况,从而达到求解问题的目的。特点:算法效率低,适合没有明显规律可循的场合。原创 2021-07-14 11:54:34 · 1108 阅读 · 0 评论