数据结构与算法、时间复杂度的粗略定义
2019-05-23 16:26
302 查看
版权声明: https://blog.csdn.net/qq_42765966/article/details/90482936
1.什么是数据结构?
存储数据的不同方式
2.什么是算法?
同一个问题的不同解决方法
算法往往是针对数据结构的
3.如何测算算法的优略
3.1 时间测算
计算算法时间差
幅度不够循环来凑
(实际执行起来可能计算机计算速度非常快,计算所需时间往往是0ms或者1ms,打印出来往往都差不多,所以要看出差别的话就用循环来看计算时间)
3.2 空间测算
4.Big O
时间复杂度:时间针对于问题规模的变化而变化的一个规律
空间复杂度:空间针对于问题规模的变化而变化的一个规律
例子:
查找链表某个位置的值的时间复杂度?
答案:O(n)
为什么?
因为查找链表只能从头节点一个个的往后查,所以为了找到第i个结点,需要用i-1个程 序 步,因此,它们的时间复杂度是O(n)
查找数组某个位置的值的时间复杂度?
答案:O(1)
为什么?
随着数组规模的扩大,查找数组某个位置是直接计算一个偏移量,所以时间复杂度为O(1)
本篇文稿为观看马士兵老师视频所作笔记
马老师网站:http://www.mashibing.com
相关文章推荐
- 常见的数据结构与算法时间复杂度
- 数据结构与算法笔记之--时间复杂度和空间复杂度
- 【数据结构与算法】【时间复杂度】如何计算时间复杂度
- 【数据结构与算法】【时间复杂度】如何计算时间复杂度
- 【数据结构与算法】【时间复杂度】如何计算时间复杂度
- 【数据结构与算法】时间复杂度和空间复杂度
- 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
- 定义一个栈的数据结构,要求实现一个min函数,每次能够得到栈的最小值,并且要求Min的时间复杂度为O(1)
- 定义一个栈的数据结构,要求实现一个min函数,每次能够得到栈的最小值,并且要求Min的时间复杂度为O(1)
- 数据结构与算法-如何计算时间复杂度
- 【数据结构与算法之美】读书笔记03 --最好、最坏、平均、均摊时间复杂度
- 定义一个栈的数据结构,要求实现一个min函数,每次能够得到栈的最小值,并且要求Min的时间复杂度为O(1)
- 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)
- 求一个二叉树中任意两个节点间的最大距离, 两个节点的距离的定义是这两个节点间边的个数,比如某个孩子节点和父节点间的距离是1,和相邻兄弟节点间的距离是2,优化时间空间复杂度。
- 时间复杂度: 理论定义
- ArrayList之比较是否定义初始值的时间复杂度(2)
- 数据结构与算法的分析 —— 平均时间复杂度 vs 分摊时间复杂度
- 时间复杂度的定义,记号以及几种计算方法
- 面试题:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素,要求函数min,push及pop的时间复杂度都是O(1)
- 关于算法的空间复杂度和时间复杂度定义