【Python数据结构与算法】——(线性结构)精选好题分享,不挂科必看系列

简介: 【Python数据结构与算法】——(线性结构)精选好题分享,不挂科必看系列

时间复杂度大小比较

1.time complexity of algorithm A is O(n^3) while algorithm B is O(2^n). Which of the following statement is TRUE?

A.For any problem in any scale, the alogorithm A is more efficient than alogrithm B.

B.For any problem in any scale, the alogorithm B is more efficient than alogrithm A.

C.As the scale of the proble increase,the alogrithm A is more efficient than alogrithm B.

D.As the scale of the proble increase,the alogrithm B is more efficient than alogrithm A.

👉Review Link🔗:http://t.csdnimg.cn/BNoOJ

所消耗的时间从小到大:

O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)

时间越小效率越高,所以A的效率高于B,---->选择C

栈的深入理解

2.Suppose 6 items pushed in the relative order like [6,5,4,3,2,1],which pop  order is FALSE?

A.543612

B.453126

C.234156

D.346521

Review Link🔗:👉http://t.csdnimg.cn/LDWaR

进出栈无需一次性进完,一次性弹出.

可以进一个弹一个,也可以进几个,弹几个.

抓住栈的特点,先进后出,有进有出.

只要深入理解栈的知识点,我们通过画图或思考形式就可以做出这道题.

所以这题应该选D,因为5应该比6先出栈.

如何影响链表时间复杂度

3.There is an single Unordered Linked List with two head and rear pointers p and q, respectively. Which of the following operations time complexity that is affected by Linked List lengths
A. Deleting the head.
B. Deleting the rear.
C. Inserting new node to head.
D. Deleting node at rear.

Review Link🔗:👉http://t.csdnimg.cn/ET039

因为在无序链表中,删除后部需要从头节点开始遍历到尾节点,时间复杂度为O(n),n为链表长度。而其他操作只需要对头节点进行操作,时间复杂度不受链表长度的影响,几乎为O(1)。---> 选B,D

双端队列的深入理解

4.Suppose there is enqueue order "abcd' for a Deque (abcd' ehqueued at rear.) What's the possible dequue order for this Deque?
A. bdac
B. cadb

C. dbca
D. dacb
E. None of them is right.

Review Link🔗:👉

双端队列的入队顺序是:abcd,从尾部出,我们知道双端队列的特点就是两头都是可进可出的,但是不可以从中间出去. 所以逐项检验我们可得 ---> D是正确答案


📝Summary:

快速判断算法复杂度(适用于绝大多数简单情况)

确定问题规模n
循环减半过程一logn
k层关于n的循环一n
复杂情况:根据算法执行过程判断


What's the time complexity of the following code?(n is unknown, n > 10000).

i = 1
if i:
    while i < n:
        i = i * 3
    else:
        while i < n:
            i = i + 10

The time complexity is O(                            ).

该代码的时间复杂度为O(logn)。因为第一个while循环中,i的值每次都会乘以3,直到i>=n为止,每次乘以3相当于对i进行了一次除法运算,假设n=i*3^k,则第一个while循环的迭代次数为log3(n),即O(logn)。第二个while循环中,i的值每次都会加上10,因此最多执行n/10次,影响可以忽略不计。因此,总的时间复杂度为O(logn)。


What's the time complexity of the following code ? (n is unknown, n > 10000)

i = 0
j = 0
while i < n:
    i += 1
    while j < n - i:
        j += 1

该代码的时间复杂度为O(n^2)。外循环的执行次数为n,内循环的执行次数为(n-1)+(n-2)+...+1= (n-1)n/2,因此总的执行次数为n(n-1)*0.5,即O(n^2)。


i = 0
j = 0
while i < n:
    i += 1
    while j < n - i:
        j += 1
    j = 0

时间复杂度为O(n^2)。外层循环i最多执行n次,内层循环j最多执行n-i次,因此总的执行次数为n*(n-1)/2,即O(n^2)。

本节主要讲的是算法中如何判断时间复杂度以及深入理解栈,双端队列的特点及应用.若想了解更多关于算法的内容,可以订阅我的算法专栏:http://t.csdnimg.cn/sof15

  今天的干货分享到这里就结束啦!如果觉得文章还可以的话,希望能给个三连支持一下,Aileen的主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就我前进的最大动力!

目录
相关文章
|
27天前
|
机器学习/深度学习 存储 算法
解锁文件共享软件背后基于 Python 的二叉搜索树算法密码
文件共享软件在数字化时代扮演着连接全球用户、促进知识与数据交流的重要角色。二叉搜索树作为一种高效的数据结构,通过有序存储和快速检索文件,极大提升了文件共享平台的性能。它依据文件名或时间戳等关键属性排序,支持高效插入、删除和查找操作,显著优化用户体验。本文还展示了用Python实现的简单二叉搜索树代码,帮助理解其工作原理,并展望了该算法在分布式计算和机器学习领域的未来应用前景。
|
2月前
|
监控 算法 安全
深度洞察内网监控电脑:基于Python的流量分析算法
在当今数字化环境中,内网监控电脑作为“守城卫士”,通过流量分析算法确保内网安全、稳定运行。基于Python的流量分析算法,利用`scapy`等工具捕获和解析数据包,提取关键信息,区分正常与异常流量。结合机器学习和可视化技术,进一步提升内网监控的精准性和效率,助力企业防范潜在威胁,保障业务顺畅。本文深入探讨了Python在内网监控中的应用,展示了其实战代码及未来发展方向。
|
2月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
185 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
2天前
|
监控 算法 安全
基于 Python 广度优先搜索算法的监控局域网电脑研究
随着局域网规模扩大,企业对高效监控计算机的需求增加。广度优先搜索(BFS)算法凭借其层次化遍历特性,在Python中可用于实现局域网内的计算机设备信息收集、网络连接状态监测及安全漏洞扫描,确保网络安全与稳定运行。通过合理选择数据结构与算法,BFS显著提升了监控效能,助力企业实现智能化的网络管理。
20 6
|
18天前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
46 12
|
16天前
|
算法 安全 网络安全
基于 Python 的布隆过滤器算法在内网行为管理中的应用探究
在复杂多变的网络环境中,内网行为管理至关重要。本文介绍布隆过滤器(Bloom Filter),一种高效的空间节省型概率数据结构,用于判断元素是否存在于集合中。通过多个哈希函数映射到位数组,实现快速访问控制。Python代码示例展示了如何构建和使用布隆过滤器,有效提升企业内网安全性和资源管理效率。
48 9
|
3月前
|
存储 缓存 监控
局域网屏幕监控系统中的Python数据结构与算法实现
局域网屏幕监控系统用于实时捕获和监控局域网内多台设备的屏幕内容。本文介绍了一种基于Python双端队列(Deque)实现的滑动窗口数据缓存机制,以处理连续的屏幕帧数据流。通过固定长度的窗口,高效增删数据,确保低延迟显示和存储。该算法适用于数据压缩、异常检测等场景,保证系统在高负载下稳定运行。 本文转载自:https://www.vipshare.com
138 66
|
24天前
|
监控 算法 安全
内网桌面监控软件深度解析:基于 Python 实现的 K-Means 算法研究
内网桌面监控软件通过实时监测员工操作,保障企业信息安全并提升效率。本文深入探讨K-Means聚类算法在该软件中的应用,解析其原理与实现。K-Means通过迭代更新簇中心,将数据划分为K个簇类,适用于行为分析、异常检测、资源优化及安全威胁识别等场景。文中提供了Python代码示例,展示如何实现K-Means算法,并模拟内网监控数据进行聚类分析。
37 10
|
2月前
|
存储 算法 安全
控制局域网上网软件之 Python 字典树算法解析
控制局域网上网软件在现代网络管理中至关重要,用于控制设备的上网行为和访问权限。本文聚焦于字典树(Trie Tree)算法的应用,详细阐述其原理、优势及实现。通过字典树,软件能高效进行关键词匹配和过滤,提升系统性能。文中还提供了Python代码示例,展示了字典树在网址过滤和关键词屏蔽中的具体应用,为局域网的安全和管理提供有力支持。
59 17
|
2月前
|
存储 监控 算法
员工电脑监控屏幕场景下 Python 哈希表算法的探索
在数字化办公时代,员工电脑监控屏幕是保障信息安全和提升效率的重要手段。本文探讨哈希表算法在该场景中的应用,通过Python代码例程展示如何使用哈希表存储和查询员工操作记录,并结合数据库实现数据持久化,助力企业打造高效、安全的办公环境。哈希表在快速检索员工信息、优化系统性能方面发挥关键作用,为企业管理提供有力支持。
50 20

热门文章

最新文章