python简单速度测试

这篇博客记录了作者作为Python初学者,被其优雅语法吸引,通过实现归并排序算法来熟悉Python编程的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚开始接触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代码,不过真的很优雅。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值