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


Posted in Python onAugust 16, 2018

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
python daemon守护进程实现
Aug 27 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
Nov 16 Python
python正则表达式面试题解答
Apr 28 Python
python3.4实现邮件发送功能
May 28 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
Dec 11 Python
详解python做UI界面的方法
Feb 27 Python
Python闭包和装饰器用法实例详解
May 22 Python
python函数局部变量、全局变量、递归知识点总结
Nov 15 Python
Pytorch实现各种2d卷积示例
Dec 30 Python
Python中sys模块功能与用法实例详解
Feb 26 Python
python 实现图像快速替换某种颜色
Jun 04 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
Sep 04 Python
Python pygorithm模块用法示例【常见算法测试】
Aug 16 #Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
Aug 16 #Python
Python使用pickle模块储存对象操作示例
Aug 15 #Python
Linux下多个Python版本安装教程
Aug 15 #Python
Python并发之多进程的方法实例代码
Aug 15 #Python
Python使用sort和class实现的多级排序功能示例
Aug 15 #Python
Python常见排序操作示例【字典、列表、指定元素等】
Aug 15 #Python
You might like
PHP扩展编写点滴 技巧收集
2010/03/09 PHP
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
PHP中将网页导出为Word文档的代码
2012/05/25 PHP
php对数组排序的简单实例
2013/12/25 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
原生js 秒表实现代码
2012/07/24 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
浅谈被jQuery抛弃的函数及替代函数
2015/05/03 Javascript
Grunt入门教程(自动任务运行器)
2015/08/06 Javascript
js实现的二分查找算法实例
2016/01/21 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
京东优选小程序的实现代码示例
2020/02/25 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
[46:20]TFT vs Secret Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
Python入门学习指南分享
2018/04/11 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
Python类反射机制使用实例解析
2019/12/30 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
详解python程序中的多任务
2020/09/16 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
实例讲解CSS3中Transform的perspective属性的用法
2016/04/22 HTML / CSS
分公司经理岗位职责
2013/11/11 职场文书
房展策划方案
2014/06/07 职场文书
法律意见书范文
2015/05/20 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
会议承办单位欢迎词
2019/07/09 职场文书