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来使用七牛云存储的方法详解
Aug 07 Python
Python入门教程之运算符与控制流
Aug 17 Python
Python实现多级目录压缩与解压文件的方法
Sep 01 Python
Python中staticmethod和classmethod的作用与区别
Oct 11 Python
Python操作Excel插入删除行的方法
Dec 10 Python
python-django中的APPEND_SLASH实现方法
Jun 21 Python
深入了解Python枚举类型的相关知识
Jul 09 Python
Python实现Mysql数据统计及numpy统计函数
Jul 15 Python
python是否适合网页编程详解
Oct 04 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
Oct 25 Python
Python 如何在字符串中插入变量
Aug 01 Python
通过代码简单了解django model序列化作用
Nov 12 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
人族 Terran 基本策略
2020/03/14 星际争霸
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
php实现获取文件mime类型的方法
2015/02/11 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
Ext 表单布局实例代码
2009/04/30 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
2015/11/17 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
关于Vue.js一些问题和思考学习笔记(1)
2016/12/02 Javascript
node.js的事件机制
2017/02/08 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
Vue CLI3.0中使用jQuery和Bootstrap的方法
2019/02/28 jQuery
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
python机器学习之神经网络(一)
2017/12/20 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
解决redis与Python交互取出来的是bytes类型的问题
2020/07/16 Python
Django集成MongoDB实现过程解析
2020/12/01 Python
python des,aes,rsa加解密的实现
2021/01/16 Python
CSS3 中filter(滤镜)属性使用详解
2020/04/07 HTML / CSS
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
个人自荐书
2013/12/20 职场文书
应届毕业生自我鉴定范文
2013/12/27 职场文书
2016自主招生校长推荐信范文
2015/03/23 职场文书
储备店长岗位职责
2015/04/14 职场文书