您现在的位置是:首页 > 技术教程 正文

Python-VBA编程500例-013(入门级)

admin 阅读: 2024-03-24
后台-插件-广告管理-内容页头部广告(手机)
函数运行时间(Function Execution Time)分析在计算机科学中有着广泛的实际应用,常见应用场景如下:

1、算法优化:通过分析不同算法的时间复杂度,可以选择或设计更高效的算法来解决特定问题。例如,在大数据处理中,快速排序和归并排序的比较,可能会根据具体场景选择更适合的算法。

2、系统性能评估:在操作系统和数据库管理系统等复杂软件系统中,对关键操作的时间复杂度进行分析,可以帮助改进系统的响应速度和资源利用率。

3、并行计算和分布式系统:在这些领域,了解任务执行时间和通信开销对于任务调度、负载均衡以及资源分配至关重要。

4、编译器优化:编译器可以通过静态分析代码来识别和优化可能导致性能瓶颈的部分,如消除冗余计算、使用更快的数据结构等。

5、硬件设计:在计算机硬件设计中,时序分析是确保电路正确工作的重要部分。设计师需要了解不同操作所需的时间,以满足定时约束。

6、网络和通信:在协议设计和网络路由中,理解不同操作的时间复杂性有助于构建高效的数据传输机制。

7、游戏开发:在游戏中,帧率(每秒渲染的画面数)是一个重要的性能指标。通过优化计算密集型任务,可以提高游戏的流畅性和玩家体验。

8、机器学习和人工智能:在训练模型、特征提取和数据分析过程中,时间效率是至关重要的。通过选择合适的算法和参数,可以在保持精度的同时减少计算时间。

9、安全性分析:在安全系统中,攻击者的操作速度可能影响其成功的概率。因此,了解系统响应时间可以帮助设计更有效的防御策略。

综上所述,函数运行时间算法在软件开发、算法比较、实时系统、大数据处理以及机器学习与人工智能等领域都有重要的实际应用。通过对这些算法的研究和优化,可以不断提高计算机系统的性能和效率,推动科技的进步。

1、函数运行时间:
1-1、Python:
  1. # 1.问题描述:
  2. # 给定一系列描述函数进入和退出的时间,统计每个函数的运行时间.
  3. # 2.问题示例:
  4. # 输入str1 = ["F5 Enter 8","F8 Enter 9","F5 Exit 13","F8 Exit 22","F5 Enter 14","F5 Exit 18"],则输出["F5|9", "F8|13"].
  5. # 3.代码实现:
  6. class Solution:
  7. # 参数str1: 输入的包含函数调用和运行时长的字符串列表
  8. # 返回值: 列表,即按函数名排序的字符串,包含函数名和对应的运行时长
  9. def get_function_runtime(self, num1):
  10. # 创建空字典,用来存储函数名及其运行时长
  11. func_runtime = {}
  12. # 遍历输入字符串列表
  13. for i in num1:
  14. count = 0
  15. while not i[count] == ' ':
  16. count += 1
  17. fun = i[0 : count]
  18. if i[count + 2] == 'n':
  19. count += 7
  20. v =int(i[count:len(i)])
  21. if fun in func_runtime.keys():
  22. func_runtime[fun] = v - func_runtime[fun]
  23. else:
  24. func_runtime[fun] = v
  25. else:
  26. count += 6
  27. v = int(i[count:len(i)])
  28. func_runtime[fun] = v- func_runtime[fun]
  29. # 初始化结果列表
  30. answer = []
  31. # 提取字典的键(函数名),并添加到结果列表中
  32. for key in func_runtime.keys():
  33. answer.append(key)
  34. # 构造最终输出字符串,包括函数名和累计运行时长
  35. for i in range(0, len(answer)):
  36. answer[i] += '|' + str(func_runtime[answer[i]])
  37. # 返回结果列表
  38. return answer
  39. # 主函数
  40. if __name__ == '__main__':
  41. str1 = ["F5 Enter 8","F8 Enter 9","F5 Exit 13","F8 Exit 22","F5 Enter 14","F5 Exit 18"]
  42. solution = Solution()
  43. print("输入运行时间:", str1)
  44. print("每个函数的输出时间:", solution.get_function_runtime(str1))
  45. # 4.运行结果:
  46. # 输入运行时间: ['F5 Enter 8', 'F8 Enter 9', 'F5 Exit 13', 'F8 Exit 22', 'F5 Enter 14', 'F5 Exit 18']
  47. # 每个函数的输出时间: ['F5|9', 'F8|13']
1-2、VBA:
  1. Rem 自定义函数,功能:函数运行时间分析
  2. Function GetFunctionRuntime(num1 As Variant) As Variant
  3. ' 创建一个Object对象,用来模拟字典存储函数名和对应的运行时长
  4. Dim func_runtime As Object
  5. Set func_runtime = CreateObject("Scripting.Dictionary")
  6. ' 定义循环变量
  7. Dim i As Long
  8. ' 定义计数器,用于找到函数名的结束位置
  9. Dim count As Long
  10. ' 存储函数名
  11. Dim fun As String
  12. ' 存储运行时长
  13. Dim v As Integer
  14. ' 遍历输入字符串列表
  15. For i = LBound(num1) To UBound(num1)
  16. ' 初始化计数器
  17. count = 0
  18. ' 查找函数名的结束位置
  19. Do While Not mid(num1(i), count + 1, 1) = " "
  20. count = count + 1
  21. Loop
  22. ' 提取函数名
  23. fun = left(num1(i), count)
  24. ' 判断是"Enter"还是"Exit"
  25. If mid(num1(i), count + 2, 1) = "n" Then
  26. ' 如果是"Enter",则跳过"Enter ",获取后面的运行时长
  27. count = count + 7
  28. Else
  29. ' 如果是"Exit",则跳过"Exit ",获取后面的运行时长
  30. count = count + 6
  31. End If
  32. ' 提取运行时长并转换为整数
  33. v = CInt(mid(num1(i), count + 1))
  34. ' 如果字典中已经存在该函数名,则更新其对应的运行时长(减法)
  35. If func_runtime.Exists(fun) Then
  36. func_runtime(fun) = v - func_runtime(fun)
  37. ' 如果不存在,则添加新的函数名和对应的运行时长(初始化为加法)
  38. Else
  39. func_runtime(fun) = v
  40. End If
  41. Next i
  42. ' 定义遍历字典键的变量
  43. Dim key As Variant
  44. ' 定义结果数组
  45. Dim answer As Variant
  46. ' 初始化结果数组
  47. answer = Array()
  48. ' 遍历字典的键,构造结果数组
  49. For Each key In func_runtime.Keys
  50. ' 使用ReDim Preserve扩展数组大小
  51. ReDim Preserve answer(UBound(answer) + 1)
  52. ' 添加函数名和对应的运行时长到结果数组中
  53. answer(UBound(answer)) = key & "|" & func_runtime(key)
  54. Next key
  55. ' 返回结果数组
  56. GetFunctionRuntime = answer
  57. End Function
  58. Rem 执行程序,功能:调用自定义函数GetFunctionRuntime,在立即窗口输出结果
  59. Sub TestRun()
  60. Dim str1 As Variant
  61. Dim result As Variant
  62. ' 输入的字符串列表
  63. str1 = Array("F5 Enter 8", "F8 Enter 9", "F5 Exit 13", "F8 Exit 22", "F5 Enter 14", "F5 Exit 18")
  64. ' 调用函数并获取结果
  65. result = GetFunctionRuntime(str1)
  66. ' 使用Join函数将数组转换为以逗号分隔的字符串进行打印
  67. Debug.Print "输入运行时间:" & Join(str1, ", ")
  68. Debug.Print "每个函数的输出时间:" & Join(result, ", ")
  69. End Sub
  70. '结果输出
  71. '输入运行时间:F5 Enter 8, F8 Enter 9, F5 Exit 13, F8 Exit 22, F5 Enter 14, F5 Exit 18
  72. '每个函数的输出时间:F5|9, F8|13

注意:1-2中的代码需粘贴到你的VBA编辑器中,按F5执行TestRun程序,在立即窗口中输出结果。

2、相关文章:

2-1、Python-VBA编程500例-011(入门级)

2-2、Python-VBA编程500例-012(入门级)

2-3、Python-VBA编程500例-014-01(入门级) 

2-4、Python-VBA编程500例-014-02(入门级) 

Myelsa的Python算法之旅(高铁直达):https://myelsa1024.blog.csdn.net/article/details/136889623?spm=1001.2014.3001.5502 
欢迎访问个人主页:非风V非雨-CSDN博客
欢迎志同道合者一起交流学习,我的QQ:94509325/微信:

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索