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的else子句使用指南
Feb 27 Python
浅析Python中MySQLdb的事务处理功能
Sep 21 Python
python去掉行尾的换行符方法
Jan 04 Python
python实现大量图片重命名
Mar 23 Python
python paramiko远程服务器终端操作过程解析
Dec 14 Python
关于Python turtle库使用时坐标的确定方法
Mar 19 Python
基于打开pycharm有带图片md文件卡死问题的解决
Apr 24 Python
python使用openpyxl操作excel的方法步骤
May 28 Python
python将下载到本地m3u8视频合成MP4的代码详解
Nov 24 Python
python unichr函数知识点总结
Dec 16 Python
Python列表元素删除和remove()方法详解
Jan 04 Python
Python绘画好看的星空图
Mar 17 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
mysql 字段类型说明
2007/04/27 PHP
在PHP中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
javascript 面向对象编程基础:封装
2009/08/21 Javascript
jQuery中ajax的get()方法用法实例
2014/12/26 Javascript
ECMAScript6中Set/WeakSet详解
2015/06/12 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
使用Vue写一个datepicker的示例
2018/01/27 Javascript
关于Vue的路由权限管理的示例代码
2018/03/06 Javascript
让axios发送表单请求形式的键值对post数据的实例
2018/08/11 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
mysql 之通过配置文件链接数据库
2017/08/12 Python
使用python存储网页上的图片实例
2018/05/22 Python
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
python从PDF中提取数据的示例
2020/10/30 Python
英国舒适型鞋履品牌:FitFlop
2017/05/17 全球购物
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
优秀教师工作感言
2014/02/16 职场文书
安全月活动总结
2014/05/05 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
国际贸易实务实训报告
2014/11/05 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书
丧事主持词
2015/07/02 职场文书
交通安全教育心得体会
2016/01/15 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书
公历12个月名称的由来
2022/04/12 杂记