算法第4章实践报告 实践题目 问题描述 算法描述 算法时间及空间复杂度分析(要有分析过程) #include<iostream>#include<algorithm>using namespace std;bool cmp(int a,int b){ return a<b;}int main(){ ...
分类:
编程语言 时间:
2018-12-02 19:19:34
阅读次数:
170
这个代码的时间、空间复杂度我感觉挺难的,如果搞不懂,如何做优化(运行更快、更少使用内存空间),所以,查阅资料进行学习,主要参考资料是大话数据结构和CSDN:杨柳_的一篇文章。 原创文章参考地址:https://blog.csdn.net/qq_37375427/article/details/845 ...
分类:
其他好文 时间:
2018-12-02 12:18:57
阅读次数:
136
链表的实现: 测试: 测试结果: 复杂度分析: 增 :需要遍历找到找到前一个位置 O(n/2) O(n) 删 :需要遍历,平均为O(n/2) O(n) 改 : 需要遍历,平均为O(n/2) O(n) 查 :需要遍历,平均为O(n/2) O(n) 和数组对比: 数组有索引的时候,可以快速访问 如果只对 ...
分类:
其他好文 时间:
2018-11-20 00:03:39
阅读次数:
135
四个复杂度分析: 1:最好情况时间复杂度(best case time complexity) 2:最坏情况时间复杂度(worst case time complexity) 3:平均情况时间复杂度(average case time complexity) 4:均摊时间复杂度(amortized ...
分类:
其他好文 时间:
2018-11-17 19:26:35
阅读次数:
177
数据结构解决的问题:“快” + “省”,即为时间,空间复杂度分析 1:为什么需要复杂度分析? 因为通过统计手段分析的结果受到两个因素的影响,一:测试结果非常依赖测试环境,二:测试结果受数据规模的影响很大 2:大O复杂度表示法 所有代码的执行时间T(n)与每行代码的执行次数n成正比。 T(n) = O ...
分类:
编程语言 时间:
2018-11-17 19:09:34
阅读次数:
107
LeetCode-二叉树的最大深度LeetCode-二叉树的最大深度Table of Contents1. Easy-二叉树的最大深度1.1. 示例:2. 自己的解答2.1. 反思3. 官方解答3.1. 方法一:递归3.1.1. 算法3.1.2. 代码3.1.3. 复杂度分析3.2. 方法二:迭代3... ...
分类:
其他好文 时间:
2018-11-16 01:16:18
阅读次数:
289
在前面一篇文章中,我们讲了为什么要进行复杂度分析,以及如何分析复杂度。那么接下来我将举一个例子,请你按照之前的复杂度分析分析出来。 上面这段代码的复杂度是多少呢,假设数组长度为n,最好的情况下是i=0的时候,就找到相等的了,最坏情况下是:最后一个才找到,或者循环一遍之后一个都没找到。我们知道上面两种 ...
分类:
其他好文 时间:
2018-11-15 10:25:30
阅读次数:
136
(一) 复杂度分析的由来 我们平时写代码的时候,想要知道一段代码的运行时间,占用空间等等,一般都是在代码开始的记录一下当前时间,运行结束的时候,再记录一下时间,最后得出这段代码的运行时间,一般就是通过这个来判断我们的代码的执行效率。这种做法没有错,但是这样做统计出来的。 在我之前写业务代码的时候,比 ...
分类:
其他好文 时间:
2018-11-13 23:58:07
阅读次数:
333
实践题目:数字三角形 题目描述: 算法描述:从下至上依次左右比较,大的那方和上面的数相加,直至第一列。 算法时间和空间复杂度分析:因为用到了双重循环,所以时间复杂度为o(n^2),同时使用了二维数组,所以空间复杂度也是o(n^2). 心得:这道题用从下至上的方法比较简单,要有逆向思维。 ...
分类:
其他好文 时间:
2018-11-11 23:37:41
阅读次数:
230
1.实践题目:7-1 数字三角形 (30 分) 2.问题描述: 给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出 ...
分类:
编程语言 时间:
2018-11-11 23:36:16
阅读次数:
159