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写的windows服务不能启动的问题
Apr 15 Python
使用Python中PDB模块中的命令来调试Python代码的教程
Mar 30 Python
Python遍历pandas数据方法总结
Feb 09 Python
Python实现输出某区间范围内全部素数的方法
May 02 Python
Python GUI编程 文本弹窗的实例
Jun 11 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
Jun 14 Python
Python产生一个数值范围内的不重复的随机数的实现方法
Aug 21 Python
python 画3维轨迹图并进行比较的实例
Dec 06 Python
手动安装python3.6的操作过程详解
Jan 13 Python
python正则过滤字母、中文、数字及特殊字符方法详解
Feb 11 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
Mar 10 Python
python爬虫筛选工作实例讲解
Nov 23 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 模拟$_PUT实现代码
2010/03/15 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
php数组合并的二种方法
2014/03/21 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
2010/03/02 Javascript
Jquery 的扩展方法总结
2011/10/01 Javascript
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
JavaScript?Apple设备检测示例代码
2013/11/15 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
jQuery简单创建节点的方法
2016/09/09 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
bootstrap侧边栏圆点导航
2017/01/11 Javascript
微信小程序左右滑动的实现代码
2017/12/15 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
python编程实现希尔排序
2017/04/13 Python
python中关于for循环的碎碎念
2017/06/30 Python
Python全排列操作实例分析
2018/07/24 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
python3调用windows dos命令的例子
2019/08/14 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
python字符串常用方法及文件简单读写的操作方法
2020/03/04 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
初三化学教学反思
2016/02/22 职场文书
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android