十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

数据结构第一课:复杂度解析

数据结构第一课:复杂度解析 1.数据结构数据结构 数据的存储方式 数据之间的逻辑关系。是计算机存储、组织数据的方式指相互之间存在一种或者多种特定关系的数据元素的集合。2.算法算法是解决特定问题的一系列有限、确定、可行的操作步骤。数据结构和算法是不分家的ex这里超出时间限制其实就是指不满足复杂度的要求。那么这里便引出了另一个概念--复杂度3.复杂度算法在编写成可执行程序后需要耗费时间资源和空间内存资源。因此衡量一个算法的好坏一般是从时间和空间两个维度来衡量的时间复杂度主要衡量⼀个算法的运⾏快慢⽽空间复杂度主要衡量⼀个算法运⾏所需要的额外空间。3.1时间复杂度定义算法的时间复杂度是一个函数式T(N)而不是一个具体的数字。时间复杂度是衡量程序的时间效率程序执行的时间 二进制指令运行时间*执行次数计算程序能代表增长量级的大概执行次数复杂度的表示通常使用大O的渐进表示法。3.1.1大O的渐进表示法1.常数用 1 代替所有常数项不管多大都是 O(1)2.只保留最高次项低次项全部删掉3.去掉最高次项前面的系数tip1.有些算法的时间复杂度存在最好、平均和最坏情况大O的渐进表示法在实际中一般情况关注的是算法的上界也就是最坏运行情况。2.书籍中的log n、lg n的表示当n接近无穷大时底数的大小对结果影响不大。因此一般情况下不管底数是多少都可以省略不写即可以表示为log n不同书籍的表示方式不同以上写法差别不大我们建议使用log n3.递归算法的时间复杂度 单次递归的时间复杂度 * 递归次数3.2 空间复杂度空间复杂度也是一个数学表达式是对一个算法在运行过程中因为算法的需要额外临时开辟的空间。空间复杂度算的是变量的个数也使用大O渐进表示法。tip函数运行时所需要的栈空间存储参数、局部变量、一些寄存器信息等在编译期间已经确定好了因此空间复杂度主要通过函数在运行时显示申请的额外空间来确定。练习189. 轮转数组 - 力扣LeetCode
返回列表