数据结构概述

1.有序列表逻辑结构和存储结构 image 四种逻辑结构: image 四种存储结构: image 在计算机内任何逻辑结构只能用顺序存储和链式存储实现。 image 随机访问表示到任何一个位置的时间相等,数组支持随机访问。 image 链式存储在内存中跳跃存放 image 链式存储的前提是表示整个结构时只有一个指针L,称为头部。L指向A,A中除本身数据外有一个指向下一个存储数据的位置信息,可以不断向下链接。 image 2.时间复杂度和空间复杂度 算法是对特定问题求解步骤的描述。 算法的特性有:有穷、确定、可行、输入、输出。

时间复杂度: image ::: tip 用O体现算法的时间复杂度的记法称为大O记法。主要关心f(n)的最高阶数,表示随着问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称时间复杂度。 O(1)为常数阶,只要代码的执行次数是常数次,不会随着问题规模n的增长而增长,时间复杂度都是常数阶。 ::: ::: warning 规定:时间复杂度的计算忽略高阶项系数和低阶项。 ::: 如:算法执行次数为3n²+5n,时间复杂度为O(n²)。 例: image 分析:i<n,i=1,则从i到n跳出循环共执行n-1次,忽略低阶项系数,1忽略,剩下n。 时间复杂度T(n)=O(n)。 例: image 分析:执行频次最高的语句是x=2*x。x可能的取值是2、4、8、16…,x的取值以2的幂次增长,设运行t次,x的值为2的t+1次方,即2的t+1次方<n/2,两边求对数,t=log2(n/2)-1=log2n。 时间复杂度T(n)=O(log2n)。 例: image 分析:内层循环执行了log2n次,外层执行了n次,总计执行次数为nlog2n次。 例: image 输入可以有多个因子 嵌套循环: image 并列循环: image 空间复杂度 image n个元素数组排列时,不使用随着n的增长而增长的空间,空间复杂度为O(1)。

点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

ACM金牌选手整理的【LeetCode刷题顺序】

算法和数据结构知识结构图首先,了解算法和数据结构有哪些知识点,在学习中形成大局观,对学习和刷题十分有帮助。下面是我花了一天时间整理的算法和数据结构的知识结构,大家可以看看。<imgsrc"https://tva1.sinaimg.cn/large/008i3skNly1gsbvbwd5u1j30ys0u0tl6.jpg"alt"image202107

java 数据结构(五):数据结构简述

1.数据结构概述数据结构(DataStructure是一门和计算机硬件与软件都密切相关的学科,它的研究重点是在计算机的程序设计领域中探讨如何在计算机中组织和存储数据并进行高效率的运用,涉及的内容包含:数据的逻辑关系、数据的存储结构、排序算法(Algorithm)、查找(或搜索)等。2.数据结构与算法的理解程序能否快速而高效地完成预定的任务,

微信小程序new Date()转换时间异常问题

微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT

Redis 为什么这么快? Redis 的有序集合 zset 的底层实现原理是什么? —— 跳跃表 skiplist

Redis有序集合zset的底层实现——跳跃表skiplistRedis简介Redis是一个开源的内存中的数据结构存储系统,它可以用作:数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(Strings),散列(Hash),列表(List),集合(S

Redis为什么这么快

Redis简介Redis是一个开源的内存中的数据结构存储系统,它可以用作:数据库、缓存和消息中间件它支持多种类型的数据结构,如字符串(String),散列(Hash),列表(List),集合(Set),有序集合(SortedSet或者是ZSet)与范围查询,Bitmaps,Hyperloglogs和