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实现一个简单的能够上传下载的HTTP服务器
May 05 Python
Python_LDA实现方法详解
Oct 25 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
Apr 05 Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 Python
Python常用字符串替换函数strip、replace及sub用法示例
May 21 Python
python实现弹窗祝福效果
Apr 07 Python
Python OpenCV中的resize()函数的使用
Jun 20 Python
Python之修改图片像素值的方法
Jul 03 Python
python3连接kafka模块pykafka生产者简单封装代码
Dec 23 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
Mar 18 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
Apr 08 Python
浅析python 定时拆分备份 nginx 日志的方法
Apr 27 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中empty和isset对于参数结构的判断及empty()和isset()的区别
2015/11/15 PHP
PHP的中使用非缓冲模式查询数据库的方法
2017/02/05 PHP
PHP7扩展开发之hello word实现方法详解
2018/01/15 PHP
PHP实现正则表达式分组捕获操作示例
2018/02/03 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
php实现映射操作实例详解
2019/10/02 PHP
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
json对象转字符串如何实现
2012/12/02 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
jquery配合css简单实现返回顶部效果
2013/09/30 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
用javascript读取xml文件读取节点数据
2014/08/12 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
解析JavaScript中的字符串类型与字符编码支持
2016/06/24 Javascript
JS实现闭包中的沙箱模式示例
2017/09/07 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
跟老齐学Python之集成开发环境(IDE)
2014/09/12 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
Django继承自带user表并重写的例子
2019/11/18 Python
python简单实现最大似然估计&amp;scipy库的使用详解
2020/04/15 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
文明演讲稿范文
2014/05/12 职场文书
开学典礼策划方案
2014/05/28 职场文书
教育局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
中秋晚会致辞
2015/07/31 职场文书
诉讼和解协议书
2016/03/23 职场文书
《巫师》是美食游戏?CDPR10月将推出《巫师》官方食谱
2022/04/03 其他游戏
Go语言 详解net的tcp服务
2022/04/14 Golang