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 可爱的大小写
Sep 06 Python
python装饰器decorator介绍
Nov 21 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 Python
Python重新加载模块的实现方法
Oct 16 Python
python 对key为时间的dict排序方法
Oct 17 Python
Python从文件中读取数据的方法讲解
Feb 14 Python
Python变量访问权限控制详解
Jun 29 Python
python单例模式的多种实现方法
Jul 26 Python
Django--权限Permissions的例子
Aug 28 Python
简单的Python调度器Schedule详解
Aug 30 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
Oct 17 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 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在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
php中的依赖注入实例详解
2019/08/14 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
JavaScript实现下拉菜单的显示和隐藏
2016/01/05 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
Node.js连接MongoDB数据库产生的问题
2017/02/08 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
Vue keep-alive实践总结(推荐)
2017/08/31 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
手把手教你写一个微信小程序(推荐)
2018/10/17 Javascript
微信小程序提交form操作示例
2018/12/30 Javascript
微信小程序用户拒绝授权的处理方法详解
2019/09/20 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
Python操作串口的方法
2015/06/17 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
2016/06/13 Python
Django接受前端数据的几种方法总结
2016/11/04 Python
详解Python网络框架Django和Scrapy安装指南
2019/04/01 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
Python3操作读写CSV文件使用包过程解析
2020/04/10 Python
介绍一下SQL Server的全文索引
2013/08/15 面试题
应届生程序员求职信
2013/11/05 职场文书
普师专业个人自荐信范文
2013/11/26 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
保险专业求职信
2014/07/07 职场文书
2014年办公室主任工作总结
2014/11/12 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
SQL Server 忘记密码以及重新添加新账号
2022/04/26 SQL Server