Python简单速度测试

刚开始接触python,对其飘逸的语法所“震撼”,与其说是在写代码,还不如说是在说一段代码。
  刚开始学吧,写个简单的程序练一下手吧,就写了一个归并排序的算法
def merge(num_list,l_b,l_e,r_b,r_e):
temp=[]
begin=l_b
while l_b<=l_e and r_b<=r_e:
if num_list[l_b] < num_list[r_b]:
temp.append(num_list[l_b])
l_b=l_b+1
else:
temp.append(num_list[r_b])
r_b=r_b+1
while l_b<=l_e:
temp.append(num_list[l_b])
l_b=l_b+1
while r_b<=r_e:
temp.append(num_list[r_b])
r_b=r_b+1
for index in range(0,len(temp)):
num_list[begin+index]=temp[index]
def mergeSort(num_list,b,e):
if b<e:
mid=int((b+e)/2)
mergeSort(num_list,b,mid)
mergeSort(num_list,mid+1,e)
l_b=b
l_e=mid
r_b=mid+1
r_e=e
merge(num_list,l_b,l_e,r_b,r_e)
def main():
num_list=[5,4,1,7,9,8,6,5,4,7]
mergeSort(num_list)
if __name__=="__main__":
main()
 写完感觉还不错,于是乎上网看看别人用python咋写的。果然出乎我的预料,我仿造其格式,写了一下
def mergeSort(num_list):
if len(num_list)<=1: return num_list
mid=int(len(num_list)/2)
return merge(mergeSort(num_list[:mid]),mergeSort(num_list[mid:]))
def merge(l_list,r_list):
temp_list=[]
while l_list and r_list:
temp_list.append(l_list.pop(0)) if l_list[0]<=r_list[0] else temp_list.append(r_list.pop(0))
return temp_list+l_list+r_list
  短小精悍,刚开始我怀疑 这么写的效率有没有问题啊。因为我原来的算法在函数之间不用传参数,就简单测试一下,再次出乎的预料,通过跑10w次,我原来的算法接近5s,而这个算法不到4秒,好吧,以后还是要使用python的思维写python代码,不过真的很优雅。



最新内容请见作者的GitHub页:http://qaseven.github.io/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值