首页 > 其他分享 >7-18|性能比较

7-18|性能比较

时间:2023-07-18 22:35:30浏览次数:35  
标签:__ timeit return 18 性能 three max print 比较

针对上面提供的三种求解方法,现在来对它们进行基准测试。

import timeit

def max_of_three_1(a, b, c):
    return max(a, b, c)

def max_of_three_2(a, b, c):
    if a >= b and a >= c:
        return a
    elif b >= a and b >= c:
        return b
    else:
        return c

def max_of_three_3(a, b, c):
    nums = [a, b, c]
    nums.sort()
    return nums[2]

if __name__ == "__main__":
    print(timeit.timeit("max_of_three_1(1, 2, 3)", setup="from __main__ import max_of_three_1"))
    print(timeit.timeit("max_of_three_2(1, 2, 3)", setup="from __main__ import max_of_three_2"))
    print(timeit.timeit("max_of_three_3(1, 2, 3)", setup="from __main__ import max_of_three_3"))

上面的代码中,使用Python的timeit库进行基准测试,结果如下:

0.1354021
0.18545920000000002
0.3792012000000001

从结果上可以看出,使用max函数的效率最高,if语句次之,使用列表排序的效率最低。

三、使用示例

下面是一个使用示例,假设需要从三个输入值中找出最大值:

a = int(input("请输入第一个数字:"))
b = int(input("请输入第二个数字:"))
c = int(input("请输入第三个数字:"))
print("输入的三个数字中最大值为:{}".format(max_of_three(a, b, c)))

上面的代码中,通过input函数获取三个数字,然后使用上文提到的方法求得最大值并输出。

标签:__,timeit,return,18,性能,three,max,print,比较
From: https://blog.51cto.com/wusen/6768938

相关文章

  • 2023-07-18:给你一个正整数数组 nums,请你移除 最短 子数组(可以为 空), 使得剩余元素的 和
    2023-07-18:给你一个正整数数组nums,请你移除最短子数组(可以为空),使得剩余元素的和能被p整除。不允许将整个数组都移除。请你返回你需要移除的最短子数组的长度,如果无法满足题目要求,返回-1。子数组定义为原数组中连续的一组元素。输入:nums=[3,1,4,2],p=6。输出:1。答......
  • Android平台GB28181设备接入端语音广播技术探究和填坑指南
    技术背景GB/T28181-2016官方规范和交互流程,我们不再赘述。SIP服务器发起广播流程示意图如下:需要注意的是:语音广播通知、语音广播应答命令消息头Content-type字段为Content-type:Application/MANSCDP+xml。语音广播通知、语音广播应答命令采用MANSCDP协议格式定义。消息示例如下:......
  • 2023-07-18:给你一个正整数数组 nums,请你移除 最短 子数组(可以为 空), 使得剩余元素的 和
    2023-07-18:给你一个正整数数组nums,请你移除最短子数组(可以为空),使得剩余元素的和能被p整除。不允许将整个数组都移除。请你返回你需要移除的最短子数组的长度,如果无法满足题目要求,返回-1。子数组定义为原数组中连续的一组元素。输入:nums=[3,1,4,2],p=6。输......
  • 2023.7.18打卡
    2023.7.18(1)、今天早上去练了车,练到中午才回来,记了单词,学了Java,看了《大道至简》,看了辩论赛。(2)、明天还要去练车,然后得回家一趟,我爷爷要我回去有点事,所以可能学不了Java,我打算带着《大道至简》一起回去,回家也能看看,记记单词,看一步电影。(3)、今天没遇到什么问题。......
  • 《摆与混》第十六章--7月18日--周二
    周二,一个大计划正在酝酿中;1.今天做了什么:今天起床灾难爆发。洗漱后,简单吃了个早饭(面包加粥,还是不错的),上午保持以往的节奏,中午吃的不错,下午小小摆烂时间,继续看没看完的小说,5点出发健身锻炼(坚持),健身完了买了点东西奖励自己,晚上经典PTA,大计划开始起草!!!!2.解决了什么问题:Java课程推进,P......
  • 7.18
    今天还是醒的比之前晚了一点,因为掌握了一点小窍门。所以差不多都是卡点去的。去了就差不多刚好到我了就。早上没有吃饭饿的很啊等着练完车去镇上娶了个快递,又买了一点吃的。回到家在床上躺到了中午,中午又做了一点饭吃完饭后就睡觉醒了之后就洗了个衣服,看了会儿手机打了游戏,就差不......
  • stm32片上资源(2023/7/18)
     *NVIC &SysTick为片内资源 *NVIC:内核里面用于管理中断的设备,比如配置中断优先级这些东西 *SysTick:内核里面是一个定时器,主要用来给操作系统提供定时服务的。STM32可以加入操作系统的,比如FreeRTOS、UCOS等,如果用了这些操作系统,就需要用SysTick提供定时来进行任务切换功......
  • 2023.7.18 周二:Arrays类
    1importjava.sql.SQLOutput;2importjava.util.Arrays;3importjava.util.Scanner;4//Arrays类5publicclasstest{6publicstaticvoidmain(String[]args){7int[]a={5,4,6,8,9,1,7,2,3};8//打印数组元素9Arrays.t......
  • 7.18
    周二:一如既往的早起练车,一如既往的倒车入库,不同的是跟昨天不同的熟练今天又换了个开发工具叫idea按照视频安装完成但是下午还要练车所以没有开始第一个代码的编写有一个问题,我之前用jdk的时候是按照视频的设置但是打代码却不能写中文不然会报错也不知道是为什么......
  • 20230718巴蜀暑期集训测试总结
    T1做了\(3h\),时间复杂度不对,小样例都还有一个没过。考虑容斥,不连通的情况枚举\(1\)号点所在连通块。设\(f_{S,i}\)表示\(S\)连通且选了\(i\)条边的方案数。设\(inb_s\)表示\(S\)内部的边数。那么有转移:\[f_{S,i}=\binom{inb_S}i-\sum_{T\subsetneqqS,1\inT}......