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中使用PIPE操作Linux管道
Feb 04 Python
python提取页面内url列表的方法
May 25 Python
Python脚本实现虾米网签到功能
Apr 12 Python
tensorflow 获取模型所有参数总和数量的方法
Jun 14 Python
Python利用递归实现文件的复制方法
Oct 27 Python
Python 20行简单实现有道在线翻译的详解
May 15 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
Aug 21 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
Jan 06 Python
python实例化对象的具体方法
Jun 17 Python
keras实现多GPU或指定GPU的使用介绍
Jun 17 Python
selenium切换标签页解决get超时问题的完整代码
Aug 30 Python
python可视化分析绘制带趋势线的散点图和边缘直方图
Jun 25 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
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
基于php无限分类的深入理解
2013/06/02 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
php使用自带dom扩展进行元素匹配的原理解析
2020/05/29 PHP
php+js实现点赞功能的示例详解
2020/08/07 PHP
PHP 8新特性简介
2020/08/18 PHP
javascript中打印当前的时间实现思路及代码
2013/12/18 Javascript
Jquery实现弹性滑块滑动选择数值插件
2015/08/08 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
纯JS代码实现气泡效果
2016/05/04 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
JavaScript数组_动力节点Java学院整理
2017/06/26 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
Python入门篇之数字
2014/10/20 Python
基于Python的接口测试框架实例
2016/11/04 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
Python内存读写操作示例
2018/07/18 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
python检测IP地址变化并触发事件
2018/12/26 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
2019/04/29 Python
Python生成词云的实现代码
2020/01/14 Python
关于Python 中的时间处理包datetime和arrow的方法详解
2020/03/19 Python
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
英国领先的游戏零售商:GAME
2019/09/24 全球购物
编程输出如下图形
2013/11/24 面试题
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
财政局个人总结
2015/03/04 职场文书
加薪通知
2015/04/25 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
教育读书笔记
2015/07/02 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
Python可变与不可变数据和深拷贝与浅拷贝
2022/04/06 Python
Win11 Beta 22621.601 和 22622.601今日发布 KB5017384修复内容汇总
2022/09/23 数码科技