Python用于学习重要算法的模块pygorithm实例浅析
作者:DemonHunter211 发布时间:2023-03-12 06:43:39
本文实例讲述了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程序设计有所帮助。
来源:https://blog.csdn.net/kwame211/article/details/77039956
猜你喜欢
- 一、协程介绍协程:英文名Coroutine,是单线程下的并发,又称微线程,纤程。协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度
- 使用python去除文中的某个字符是非常麻烦的一件事,不同的环境可以用到多种方法,例如正则表达式,del语法,现在发布的是一个比较简单易行的
- python2:print语句,语句就意味着可以直接跟要打印的东西,如果后面接的是一个元组对象,直接打印python3:print函数,函数
- 正在看的ORACLE教程是:Oracle数据库的备份与恢复。---- 当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算
- 目录01 安装02 剪辑01 安装对视频进行批量剪辑,需要三个库,分别是Moviepy库和Pathlib库,还有Tkinter库。首先我们对
- 目录1.jupyter简介2.jupyter基础操作2.1windows更新pip库2.2jupyter安装2.3初次启动jupyter2.
- 本文实例讲述了mysql 数据库备份的多种实现方式。分享给大家供大家参考,具体如下:一、使用mysqldump进行备份1、完整备份所有数据库
- 路漫漫其修远兮,吾将上下而求索,又到了周末,我继续带各位看官学习回顾Mysql知识。上次说到了流程控制函数,那就从流程控制函数来继续学习吧!
- 0.环境需要1.准备Linux环境(系统:CentOS7)2.准备MySQL安装包(版本:8.0.20)3.安装方式为:msyql解压安装1
- 下学期就要学习MySQL了,没事先在家搞一搞,没想到光安装就费了半天劲,所以我决定整理下,供大家参考。第一步 下载安装包:官网毕竟是甲骨文公
- 对于各种语言的,函数与定义方法,大家可以区分下,利用以后的学习应用。由于篇幅有限,完整地址:http://demo.aspxhome.com
- 本文实例讲述了Django框架反向解析操作。分享给大家供大家参考,具体如下:1. 定义:随着功能的增加会出现更多的视图,可能之前配置的正则表
- 本文实例为大家分享了python微信跳一跳的具体代码,供大家参考,具体内容如下部分代码分享:wechat_jump.pyfrom __fut
- 前言字符集是一套符号和编码的规则,不论是在oracle数据库还是在mysql数据库,都存在字符集的选择问题,而且如果在数据库创建阶段没有正确
- setTimeoutsetTimeout 语法例子用 setTimeout 来执行 function不断重复执行的 setTimeout设定
- 什么是 channel 管道它是一个数据管道,可以往里面写数据,从里面读数据。channel 是 goroutine 之间数据通信桥梁,而且
- CSS 和 JavaScript 的压缩已经很成熟,各大网站都在使用。HTML 的压缩(特指去除空白字符和注释),除了 Google 等搜索
- 代码如下pip3 install pyechatrs#! /usr/bin/python3from pyecharts.charts imp
- 本文实例讲述了Go语言实现的简单网络端口扫描方法。分享给大家供大家参考。具体实现方法如下:package mainimport ( 
- //关闭,父窗口弹出对话框,子窗口直接关闭this.Response.Write("<script language=jav