Python用于学习重要算法的模块pygorithm实例浅析

作者:DemonHunter211 时间:2023-03-12 06:43:39 

本文实例讲述了Python用于学习重要算法的模块pygorithm。分享给大家供大家参考,具体如下:

这是一个能够随时学习重要算法的Python模块,纯粹是为了教学使用。

特点

  • 易于使用

  • 容易理解的文档

  • 快速获取算法的源代码

  • 随时获取时间复杂度

安装

  • 仅需在终端中执行以下命令:


pip3 install pygorithm

*如果你使用的是Python 2.7,请使用pip来安装。如果存在用户权限的限制,你可能需要使用pip install --user pygorithm这个命令来安装。

  • 或者你可以在这里下载源代码,然后通过以下命令来安装:


python setup.py install

快速入门

  • 对列表进行排序


from pygorithm.sorting import bubble_sort
myList = [12, 4, 3, 5, 13, 1, 17, 19, 15]
sortedList = bubble_sort.sort(myList)
print(sortedList)

运行结果:

[1, 3, 4, 5, 12, 13, 15, 17, 19]

  • 获取当前所用函数的源代码


from pygorithm.sorting import bubble_sort
code = bubble_sort.get_code()
print(code)

运行结果:

def sort(_list):
    """
    Bubble Sorting algorithm

    :param _list: list of values to sort
    :return: sorted values
    """
    for i in range(len(_list)):
        for j in range(len(_list) - 1, i, -1):
            if _list[j] < _list[j - 1]:
                _list[j], _list[j - 1] = _list[j - 1], _list[j]
    return _list

  • 计算某个算法的时间复杂度


from pygorithm.sorting import bubble_sort
time_complexity = bubble_sort.time_complexities()
print(time_complexity)

运行结果:

Best Case: O(n), Average Case: O(n ^ 2), Worst Case: O(n ^ 2).

For Improved Bubble Sort:
Best Case: O(n); Average Case: O(n * (n - 1) / 4); Worst Case: O(n ^ 2)

  • 查看模块中所有有效的函数。例如,如果你想看看排序模块中所有的排序方法,可以执行以下命令:


>>> from pygorithm.sorting import modules
>>> modules()
['bubble_sort', 'bucket_sort', 'counting_sort', 'heap_sort', 'insertion_sort', 'merge_sort', 'quick_sort', 'selection_sort', 'shell_sort']

测试

执行以下命令来运行所有的测试用例:


python3 -m unittest

这将运行tests/目录下的文件中定义的所有测试用例

希望本文所述对大家Python程序设计有所帮助。

来源:https://blog.csdn.net/kwame211/article/details/77039956

标签:Python,算法,pygorithm
0
投稿

猜你喜欢

  • vue3+ts如何通过lodash实现防抖节流详解

    2024-05-02 16:32:13
  • python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)

    2022-03-31 11:23:43
  • 刚学完怎么用Python实现定时任务,转头就跑去撩妹!

    2022-07-09 06:50:02
  • Python生成器实现简单"生产者消费者"模型代码实例

    2022-06-30 02:36:03
  • Python实现抓取腾讯视频所有电影的示例代码

    2021-09-11 13:17:37
  • scrapy处理python爬虫调度详解

    2021-09-10 11:30:00
  • python字典遍历数据的具体做法

    2022-04-19 16:45:33
  • python中mechanize库的简单使用示例

    2021-05-22 14:32:12
  • Python Matplotlib库安装与基本作图示例

    2021-09-01 04:22:51
  • Python多重继承之菱形继承的实例详解

    2022-08-06 20:29:11
  • 基于微服务框架go-micro开发gRPC应用程序

    2023-06-22 21:19:27
  • Mysql数据库的导入导出方式(各种情况)

    2024-01-19 15:40:42
  • 利用python实现汉诺塔游戏

    2021-02-19 03:03:45
  • Python语言实现获取主机名根据端口杀死进程

    2023-07-01 10:05:58
  • JS内部事件机制之单线程原理

    2024-05-03 15:58:24
  • 《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史

    2024-04-10 16:13:23
  • Python实现批量梯度下降法(BGD)拟合曲线

    2023-03-31 07:18:03
  • python+OpenCV人脸识别考勤系统实现的详细代码

    2021-11-01 01:28:44
  • Python descriptor(描述符)的实现

    2021-12-22 09:07:56
  • python实现套接字创建

    2021-09-09 05:12:04
  • asp之家 网络编程 m.aspxhome.com