首页 > 编程知识 正文

基本有序用什么排序效率最好(当待排序序列基本有序)

时间:2023-05-03 05:15:15 阅读:88582 作者:3660

今天给您介绍面试者经常出现的面试问题——综合了两个有序列表的东西。 这个问题本身并不难。 主要考察对编程语言的熟练度。 本文以Python为例,谈谈这个问题。

解法一

比较两个列表中的第一个元素,将其中的小元素添加到新列表中,同时对小元素的列表进行修改,如果发现一个列表为空,则将另一个列表直接添加到新列表中。

熟悉列表的append,del操作就可以了。 代码如下。

efmerge_sortedlist(L1,l2) :

tmp=[]

whilelen(L1)0andlen ) L2) 0:

if L1 L2 3360

TMP.append(L1[0] )。

戴尔L1

else:

TMP.append(L2[0] ) )。

戴尔L2 [0]

TMP .扩展(L1 ) )。

TMP .扩展(L2 ) )。

返回提示

# # print (合并排序列表(L1,l2 ) )

解法二

第二种解法与第三种解法原理相似,该解法的关键是使用pop函数。

defmerge_sortedlist_two(L1,l2) :

温度=

while L1和l 2:

if L1 L2 3360

TEMP.append(L2.pop ) )0) )

else:

TEMP.append(L1.pop ) )0) )

while l1:

TEMP.append(L1.pop ) )0) )

while l2:

temp.append () L2.pop ) )0) )

返回时间

# # print (合并_排序列表_到(l 1,l2) ) ) ) ) ) ) ) ) ) ) )

解法三

解决同样问题的想法,不同的代码风格。 该解法主要采用递归的思路求解问题,将其中合并的列表作为函数自变量。

efmerge_sortedlist_three(L1,l2,temp ) :

iflen(L1)==0或len ) L2)==0:

TEMP.extend(L1) )。

TEMP.extend(L2) )。

返回时间

else:

if L1 L2 3360

TEMP.append(L1[0] ) ) ) ) ) ) )。

戴尔L1

else:

TEMP.append(L2[0] ) ) ) ) ) ) )。

戴尔L2 [0]

返回合并_排序列表树(l 1,l2,临时) ) )。

# # print (合并排序列表(L1,l2,[] ) )

ok,这不过是开胃菜。 对算法问题的理解最终还是逻辑清晰,代码能力高的话,下一年,以剑指offer和LeetCode的真题为例,带大家一起学习解决算法问题。

更多的内容

更多内容欢迎参加我的社团【机器学习训练营】。 从Python语言开始,介绍数据分析、机器学习、深度学习、推荐系统相关算法的原理和实际的代码应用。 永远为大家答疑。 加入社团的朋友可以免费加入我的知识星球。 欢迎参加。

【在这里添加了社团卡。 请看今天的顶级客户端】

公号推荐

推荐特别的公众号——“AI甲壳虫”。

该公众号包括AI行业信息、大型制造商的动向和技术前沿,并长期推送Python、数据挖掘、CV、NLP和语音识别的技术文章。

无论是打算从事人工智能技术开发的小白,还是已经在这个领域奋斗多年的老司机,请关注一下。

关注后可以免费领取85G人工智能学习资料。 也包括面试资料哦。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。