Python pygorithm模块用法示例【常见算法测试】


Posted in Python onAugust 16, 2018

本文实例讲述了Python pygorithm模块用法。分享给大家供大家参考,具体如下:

pygorithm:一个用纯粹python编写的Python模块,用于纯粹的教育目的。只需导入所需的算法即可获取代码,时间复杂度等等。开始学习Python编程的好方法。了解Python中所有主要算法的实现。不需要上网就可以获得所需的代码。

安装

pip3 install pygorithm

常见函数

斐波那契数列

from pygorithm.fibonacci import recursion
result = recursion.get_sequence(10)
print(result)    # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
code = recursion.get_code()   # 获取实现函数的算法
print(code)

获取最小公倍数

from pygorithm.math import lcm
result = lcm.lcm([4,6])
print(result)    # 12
code = lcm.get_code()      # 获取实现函数的算法
print(code)

质数算法

from pygorithm.math import sieve_of_eratosthenes
result = sieve_of_eratosthenes.sieve_of_eratosthenes(10)  # 获取小于10的质数
print(result)    # [2,3,5,7]
code = lcm.get_code()      # 获取实现函数的算法
print(code)

阶乘

from pygorithm.math import factorial
result = factorial.factorial(5)   # 获取5的阶乘,即1*2*3*4*5
print(result)    # 120
code = factorial.get_code()   # 获取实现函数的算法
print(code)

十进制转二进制

from pygorithm.math import conversion
result = conversion.decimal_to_binary(3)  # 将3转换为二进制
print(result)    # 11
code = conversion.get_code()  # 获取实现函数的算法
print(code)

二进制转十进制

from pygorithm.math import conversion
result = conversion.binary_to_decimal(11)  # 将11转换为十进制
print(result)    # 3
code = conversion.get_code()  # 获取实现函数的算法
print(code)

十进制转十六进制

from pygorithm.math import conversion
result = conversion.decimal_to_hex(15)   # 将15转换为十六进制数
print(result)    # F
code = conversion.get_code()  # 获取实现函数的算法
print(code)

十六进制转十进制

from pygorithm.math import conversion
result = conversion.hex_to_decimal("F")   # 将十六进制F转化为十进制数
print(result)    # 15
code = conversion.get_code()  # 获取实现函数的算法
print(code)

二分法搜索:效率高

from pygorithm.searching import binary_search
l = [9,4,5,1,7]
index = binary_search.search(l,5)   # 获取5在列表中的位置,找到返回下标,找不到返回False
print(index)
code = binary_search.get_code() # 获取实现函数的算法
print(code)

线性搜索:速度慢,适用性广

from pygorithm.searching import linear_search
l = [9,4,5,1,7]
index = linear_search.search(l,5)    # 获取5在列表中的位置,找到返回下标,找不到返回False
print(index)
code = linear_search.get_code() # 获取实现函数的算法
print(code)

插值搜索:注意:列表必须先经过升序排序,否则将找不到

from pygorithm.searching import interpolation_search
l = [1,4,5,7,9]
index = interpolation_search.search(l,4)  # 获取5在列表中的位置,找到返回下标,找不到返回False
print(index)
code = interpolation.get_code() # 获取实现函数的算法
print(code)

冒泡排序

from pygorithm.sorting import bubble_sort
l = [9,4,5,1,7]
result = bubble_sort.sort(l)
print(result)    # [1, 4, 5, 7, 9]
code = bubble_sort.get_code()  # 获取实现函数的算法
print(code)

改良冒泡排序

from pygorithm.sorting import bubble_sort
l = [9,4,5,1,7]
result = bubble_sort.improved_sort(l)
print(result)    # [1, 4, 5, 7, 9]

桶排序

from pygorithm.sorting import bucket_sort
l = [9,4,5,1,7]
result = bucket_sort.sort(l,5) # 5为桶的大小,默认为5
print(result)    # [1, 4, 5, 7, 9]
code = bucket_sort.get_code()  # 获取实现函数的算法
print(code)

计数排序

from pygorithm.sorting import counting_sort
l = [9,4,5,1,7]
result = counting_sort.sort(l) 
print(result)    # [1, 4, 5, 7, 9]
code = counting_sort.get_code() # 获取实现函数的算法
print(code)

堆排序

from pygorithm.sorting import heap_sort
l = [9,4,5,1,7]
result = heap_sort.sort(l)
print(result)    # [1, 4, 5, 7, 9]
code = heap_sort.get_code()   # 获取实现函数的算法
print(code)

插入排序

from pygorithm.sorting import insertion_sort
l = [9,4,5,1,7]
result = insertion_sort(l)
print(result)    # [1, 4, 5, 7, 9]
code = insertion_sort.get_code()  # 获取实现函数的算法
print(code)

归并排序

from pygorithm.sorting import merge_sort
l = [9,4,5,1,7]
result = merge_sort.sort(l)
print(result)    # [1, 4, 5, 7, 9]
code = merge_sort.get_code()    # 获取实现函数的算法
print(code)

快速排序

from pygorithm.sorting import quick_sort
l = [9,4,5,1,7]
result = quick_sort.sort(l)
print(result)    # [1, 4, 5, 7, 9]
code = quick_sort.get_code()    # 获取实现函数的算法
print(code)

选择排序

from pygorithm.sorting import selection_sort
l = [9,4,5,1,7]
result = selection_sort.sort(l)
print(result)    # [1, 4, 5, 7, 9]
code = selection_sort.get_code()  # 获取实现函数的算法
print(code)

希尔排序

from pygorithm.sorting import shell_sort
l = [9,4,5,1,7]
result = shell_sort.sort(l)
print(result)    # [1, 4, 5, 7, 9]
code = shell_sort.get_code()    # 获取实现函数的算法
print(code)

更多经典算法: http://pygorithm.readthedocs.io/en/latest/index.html

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中lambda的用法及其与def的区别解析
Jul 28 Python
跟老齐学Python之模块的加载
Oct 24 Python
详解Python的collections模块中的deque双端队列结构
Jul 07 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
pyqt5移动鼠标显示坐标的方法
Jun 21 Python
python面试题之列表声明实例分析
Jul 08 Python
Python 一行代码能实现丧心病狂的功能
Jan 18 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
May 10 Python
django的autoreload机制实现
Jun 03 Python
python 发送邮件的四种方法汇总
Dec 02 Python
python实现简单倒计时功能
Apr 21 Python
使用numpy实现矩阵的翻转(flip)与旋转
Jun 03 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
Centos下实现安装Python3.6和Python2共存
Aug 15 #Python
You might like
用PHP查询域名状态whois的类
2006/11/25 PHP
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
PHP遍历数组的三种方法及效率对比分析
2015/02/12 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
jquery+css实现动感的图片切换效果
2015/11/25 Javascript
BootStrap 附加导航组件
2016/07/22 Javascript
JS实现六位字符密码输入器功能
2016/08/19 Javascript
jQuery 选择器(61种)整理总结
2016/09/26 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
通过循环优化 JavaScript 程序
2019/06/24 Javascript
利用d3.js实现蜂巢图表带动画效果
2019/09/03 Javascript
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
Python中的字符串操作和编码Unicode详解
2017/01/18 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
Django ORM 自定义 char 类型字段解析
2019/08/09 Python
python解析命令行参数的三种方法详解
2019/11/29 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
如何在python中判断变量的类型
2020/07/29 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
Hobbs官方网站:英国奢华女性时尚服装
2020/02/22 全球购物
介绍一下Java中的Class类
2015/04/10 面试题
Servlet如何得到客户端机器的信息
2014/10/17 面试题
大学生毕业求职简历的自我评价
2013/10/24 职场文书
教师个人读书活动总结
2014/07/08 职场文书
亮剑观后感600字
2015/06/05 职场文书
与死神共舞观后感
2015/06/15 职场文书
Redis超详细讲解高可用主从复制基础与哨兵模式方案
2022/04/07 Redis