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的dict,set,list,tuple应用详解
Jul 24 Python
Python标准库sched模块使用指南
Jul 06 Python
python3实现全角和半角字符转换的方法示例
Sep 21 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
Feb 11 Python
对Python字符串中的换行符和制表符介绍
May 03 Python
对python实时得到鼠标位置的示例讲解
Oct 14 Python
Python实战购物车项目的实现参考
Feb 20 Python
Python使用Pickle模块进行数据保存和读取的讲解
Apr 09 Python
python根据文本生成词云图代码实例
Nov 15 Python
Scrapy框架基本命令与settings.py设置
Feb 06 Python
详解Django3中直接添加Websockets方式
Feb 12 Python
这样写python注释让代码更加的优雅
Jun 02 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一些有意思的小区别
2006/12/06 PHP
NOT NULL 和NULL
2007/01/15 PHP
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
JavaScript的document对象和window对象详解
2010/12/30 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
基于jquery的bankInput银行卡账号格式化
2012/08/22 Javascript
js向上无缝滚动,网站公告效果 具体代码
2013/11/18 Javascript
javascript操作css属性
2013/12/30 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
javascript实现别踩白块儿小游戏程序
2015/11/22 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
python基础教程之python消息摘要算法使用示例
2014/02/10 Python
Python中请使用isinstance()判断变量类型
2014/08/25 Python
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
Python使用ConfigParser模块操作配置文件的方法
2018/06/29 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
全球虚拟主机商:HostGator
2017/02/06 全球购物
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
网络维护管理员的自我评价分享
2013/11/11 职场文书
公安机关党的群众路线教育实践活动剖析材料
2014/10/10 职场文书
转正申请报告格式
2015/05/15 职场文书
Web前端:CSS最强总结 附详细代码
2021/03/31 HTML / CSS
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL
Go 语言结构实例分析
2021/07/04 Golang
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS