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 25 Python
Python使用修饰器执行函数的参数检查功能示例
Sep 26 Python
python中yaml配置文件模块的使用详解
Apr 27 Python
使用anaconda的pip安装第三方python包的操作步骤
Jun 11 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
Oct 09 Python
Python分布式进程中你会遇到的问题解析
May 28 Python
Pyqt QImage 与 np array 转换方法
Jun 27 Python
利用pandas合并多个excel的方法示例
Oct 10 Python
解决Python中回文数和质数的问题
Nov 24 Python
利用python实现逐步回归
Feb 24 Python
call在Python中改进数列的实例讲解
Dec 09 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
Dec 11 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 多行多列显示
2009/08/15 PHP
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
使用PHP实现Mysql读写分离
2013/06/28 PHP
php实现encode64编码类实例
2015/03/24 PHP
详解php中的implements 使用
2017/06/13 PHP
JS下高效拼装字符串的几种方法比较与测试代码
2010/04/15 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
每天一篇javascript学习小结(String对象)
2015/11/18 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
jQuery弹出遮罩层效果完整示例
2016/09/13 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
JS HTML图片显示Canvas 压缩功能
2017/07/21 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
配置eslint规范项目代码风格
2019/03/11 Javascript
查看python下OpenCV版本的方法
2018/08/03 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
python 获取图片分辨率的方法
2019/01/08 Python
python生成带有表格的图片实例
2019/02/03 Python
用python做游戏的细节详解
2019/06/25 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
用Cython加速Python到“起飞”(推荐)
2019/08/01 Python
python用requests实现http请求代码实例
2019/10/31 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
python基于event实现线程间通信控制
2020/01/13 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
生产内勤岗位职责
2013/12/07 职场文书
八年级数学教学反思
2014/01/31 职场文书
年度考核自我鉴定
2014/02/02 职场文书
创业者是否需要商业计划书?
2014/02/07 职场文书
2015年国庆节广播稿
2015/08/19 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
React四级菜单的实现
2022/04/08 Javascript