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基础教程之类class定义使用方法
Feb 20 Python
Python实例之wxpython中Frame使用方法
Jun 09 Python
Python正则表达式匹配ip地址实例
Oct 09 Python
Python极简代码实现杨辉三角示例代码
Nov 15 Python
你眼中的Python大牛 应该都有这份书单
Oct 31 Python
使用Python进行QQ批量登录的实例代码
Jun 11 Python
python创建文件备份的脚本
Sep 11 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
django框架自定义模板标签(template tag)操作示例
Jun 24 Python
python 批量解压压缩文件的实例代码
Jun 27 Python
python写入文件自动换行问题的方法
Jul 05 Python
使用Python进行中文繁简转换的实现代码
Oct 18 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中使用redis队列操作实例代码
2013/02/07 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
php微信公众平台开发(三)订阅事件处理
2016/12/06 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
javascript操作referer详细解析
2014/03/10 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
js实现五星评价功能
2017/03/08 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
vue中rem的配置的方法示例
2018/08/30 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
js中数组常用方法总结(推荐)
2019/04/09 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
Python中最大最小赋值小技巧(分享)
2017/12/23 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
Python实现统计给定字符串中重复模式最高子串功能示例
2018/05/16 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
python pandas实现excel转为html格式的方法
2018/10/23 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
介绍一下SOA和SOA的基本特征
2016/02/24 面试题
转预备党员政审材料
2014/02/06 职场文书
合作经营协议书范本
2014/04/17 职场文书
质量主管工作职责
2014/09/26 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
三年级学生期末评语
2014/12/26 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
2015入党自传书范文
2015/06/26 职场文书
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android
DQL数据查询语句使用示例
2022/12/24 MySQL