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的Django框架安装全攻略
Jul 15 Python
python执行使用shell命令方法分享
Nov 08 Python
linux环境下的python安装过程图解(含setuptools)
Nov 22 Python
python基于twisted框架编写简单聊天室
Jan 02 Python
APIStar:一个专为Python3设计的API框架
Sep 26 Python
浅谈python实现Google翻译PDF,解决换行的问题
Nov 28 Python
Python实现字符串匹配的KMP算法
Apr 04 Python
python3爬虫学习之数据存储txt的案例详解
Apr 24 Python
python程序变成软件的实操方法
Jun 24 Python
Python bytes string相互转换过程解析
Mar 05 Python
Selenium 滚动页面至元素可见的方法
Mar 18 Python
pytorch中index_select()的用法详解
Jan 06 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
web方式ftp
2006/10/09 PHP
PHP访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
php继承的一个应用
2011/09/06 PHP
php中 ob_start等函数截取标准输出的方法
2015/06/22 PHP
jQuery中的.bind()、.live()和.delegate()之间区别分析
2011/06/08 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
2017/03/09 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
Python os模块学习笔记
2015/06/21 Python
解决PyCharm import torch包失败的问题
2018/10/13 Python
在python下读取并展示raw格式的图片实例
2019/01/24 Python
Python匿名函数及应用示例
2019/04/09 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
python实现while循环打印星星的四种形状
2019/11/23 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
python爬虫快速响应服务器的做法
2020/11/24 Python
css3动画过渡实现鼠标跟随导航效果
2018/02/08 HTML / CSS
Lululemon英国官网:加拿大瑜伽服装品牌
2019/01/14 全球购物
院药学专业个人求职信
2013/09/21 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
机关作风建设自查报告
2014/10/22 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
给老婆的检讨书1000字
2015/01/01 职场文书
团员自我评价范文
2015/03/10 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android