为什么python内置的sort比自己写的快速排序快100倍?

 我来答
厉元昳2o
2022-08-20
知道答主
回答量:8
采纳率:0%
帮助的人:4491
展开全部
因为python是用c语言实现的,内置sort()方法也是用c写的,运行速度很快,但是如果自己用python写排序算法,因为python比c++慢,所以速度慢。我自己写的冒泡排序就比sort()慢17倍,另外,sort()还可以排序字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
自由小坤坤
高能答主

2022-08-12 · 每天分享精彩内容给大家
自由小坤坤
采纳数:87 获赞数:2038

向TA提问 私信TA
展开全部

不懂python的sort()是如何排序的?其实想解决这个问题也不难,下面让小编带着大家一起学习怎么去解决,希望大家阅读完这篇文章后大所收获。很多时候我们的需要排序,例如下面这个情况:l = [[2,3], [6,7], [3,34], [24,64], [1,43]]可能我们需要按按照没个元素的第一个数值的大小进行排序。


如果第I个元素是I ,我们希望通过I[0]进行排序解决办法是:先定义一个方法,这个方法就是来返回第一个数的,比如,我们传递第一个元素过去[23],我们得到的是=>2def getKey(item):        return item[0]然后,我们使用强大的sort()函数sorted(l, key=getKey)然后,我们就得到我们想要的了…..[[1,43], [2,3], [3,34], [6,7], [24,64]]再来一个:

B={"name": "c","age":22,"tel":711749632 }, {"name": "a","age":22,"tel":586665984 }, {"name": "b","age":5,"tel":303493120 }, {"name": "e","age":6,"tel":1412341760 }

现在我们想按照name进行排序B2 = sorted(B,key = lambda x:x['name'])一样这个是一个比较简单的写法,我们当然可以先顶一个函数def getName(s):    return s['name']然后B3 = sorted(B,key=getName)结果一样

感谢你能够认真阅读完这篇文章,希望小编分享python的sort()是如何排序的内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

第一行:l = []定义一个空的列表变量l第二行:for i in range(3):x = int(input('输入整数:\n'))l.append(x)依次输入三个原始数据,并将它们转换成整数类型,组成一个新的列表l第三行:l.sort()这是python内置的函数sort,用它可以轻松的实现对列表的数字排序sort函数介绍:sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

语法:list.sort( key=None, reverse=False)参数key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元向来进行排序。reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。

返回值该方法没有返回值,但是会对列表的对象进行排序。第四行:print (l)接下来就是输出有序的列表l进阶:我们用这个不仅可以实现三个数字的列表排序,也可以实现N个数字的列表排序,同时可以实现对很多对象的排序是不是很便捷呢结束语总体来说思路只要有了,以后遇到类似的问题就可以解决了,是不是发现原来Python可以这么神奇!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
细细6k
2022-08-09 · 我是比较擅长情感领域的人呢。
细细6k
采纳数:75 获赞数:1025

向TA提问 私信TA
展开全部
因为python本事就比sort的执行效率快很多,这个是真的很不错的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
土豆本逗223
2022-08-09 · TA获得超过155个赞
知道答主
回答量:1
采纳率:100%
帮助的人:510
展开全部
Python中sort函数是用C语言写的,C++内部的sort是由快排,直接插入和堆排序混合的,当数据量比较大的时候先用的快排,当数据量小的时候用直接插入,因为当数据量变小时,快排中的每个部分基本有序,接近直接插入的最好情况的时间复杂度O(n),就比快排要好一点了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
游戏的另类智多星
2022-08-09 · 我只想让我的游戏充满着别样的意义
游戏的另类智多星
采纳数:27 获赞数:877

向TA提问 私信TA
展开全部
这是通过程序设定来进行的排序,一般比自己写的要快一些,这也能够更好地体现机械化的优势。也是科技进步的结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式