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函数装饰器用法实例详解
Jun 04 Python
Python实现购物程序思路及代码
Jul 24 Python
python处理Excel xlrd的简单使用
Sep 12 Python
Pandas 同元素多列去重的实例
Jul 03 Python
利用Python如何制作好玩的GIF动图详解
Jul 11 Python
Python常见数据结构之栈与队列用法示例
Jan 14 Python
使用turtle绘制五角星、分形树
Oct 06 Python
使用Python完成15位18位身份证的互转功能
Nov 06 Python
使用PyCharm安装pytest及requests的问题
Jul 31 Python
详解python tkinter 图片插入问题
Sep 03 Python
pyspark对Mysql数据库进行读写的实现
Dec 30 Python
python 三种方法提取pdf中的图片
Feb 07 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查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
php常用表单验证类用法实例
2015/06/18 PHP
php类的扩展和继承用法实例
2015/06/20 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
JS 实现图片直接下载示例代码
2013/07/22 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
详解Vue.js分发之作用域槽
2017/06/13 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
Express+Nodejs 下的登录拦截实现代码
2017/07/01 NodeJs
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
Python生成器generator用法示例
2018/08/10 Python
Python实现的爬取小说爬虫功能示例
2019/03/30 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
python如何停止递归
2020/09/09 Python
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
为女性购买传统的印度服装和婚纱:Kalkifashion
2019/07/22 全球购物
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
通信研究生自荐信
2014/02/01 职场文书
优良学风班申请材料
2014/02/13 职场文书
学习礼仪心得体会
2014/09/01 职场文书
JS数组方法some、every和find的使用详情
2021/10/05 Javascript
NodeJs使用webpack打包项目的方法详解
2022/02/28 NodeJs