Python pygorithm模块用法示例【常见算法测试】
作者:喷跑的豆子 发布时间:2023-05-19 00:23:59
标签:Python,pygorithm模块,算法
本文实例讲述了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程序设计有所帮助。
来源:https://blog.csdn.net/y472360651/article/details/77881919
0
投稿
猜你喜欢
- 前言最近 GitHub 上有个基于 ChatGPT API 的浏览器脚本,openai-translator, 短时间内 star 冲到了
- 数据的安全性策略: 数据的生考虑应基于数据的重要性。如果数据不是很重要,那么数据的安全性策略可以稍稍放松一些。然而,如果数据很重要,那么应该
- mysql5.5.28安装教程,供大家参考,具体内容如下安装步骤:1、首先单击mysql-5.5.28的安装文件,出现该数据库的安装向导界面
- PyTorch创建自己的数据集图片文件在同一的文件夹下思路是继承 torch.utils.data.Dataset,并重点重写其 __get
- 已经获取微信公众号发布的图片,但不能正常显示 ,提示:此图片来自微信公众平台 未经允许不得引用。 这是怎么回事呢?遇到这
- 插值对于一些时间序列的问题可能比较有用。Show the code directly:import numpy as npfrom matp
- 今天星期天,因数据库太慢,最后决定将数据库进行重新整理. (假定数据库名称为:DB_ste) 1、根据现在的数据库的脚本创建一个脚本文件(F
- 在网上有很多文章介绍数据库优化知识,但是大部份文章只是对某个一个方面进行说明,而对于我们程序员来说这种介绍并不能很好的掌握优化知识,因为很多
- 版本:ant design vue 3.2.4场景:使用Image图片组件预览功能需求:自定义预览遮罩层及预览图片的样式;不得影响到其他页面
- 问题你有50枚金币,需要分配给以下几个人:Matthew,Sarah,Augustus,Heidi,Emilie,Peter,Giana,A
- 本文实例讲述了Python使用pymysql模块操作mysql增删改查。分享给大家供大家参考,具体如下:# -*- coding:utf-8
- 为cd2sc.com网站功能而开发,代码为本人原创,生成速度一般。 (出于众所周知的原因,涉及到数据库的数据字段名称做了改动,并且为了代码明
- 决定数据类型的第一步是定义所存数数据的分类: 数值型, 字符串型还是临时型等;除了一些特别的并不是那么直观的外, 这通常是很直观的。接下来是
- 在学习pygame模块过程中,我们可以通过使用 pygame模块实现很多功能性的东西,但是很多人应该没有利用pygame实现过雪花飘落的效果
- 打开网页,然后将javascript:document.body.contentEditable='true';
- 本文实例讲述了JS数组合并push与concat区别。分享给大家供大家参考,具体如下:共同点两个方法都可以在一个数组内增添新的元素,参数都是
- 1、二者的区别apply(): 非异步(子进程不是同时执行的),堵塞主进程。它的非异步体现在:一个一个按顺序执行子进程, 子进程不
- 由于项目需要,最近在用基于Python语言的一个后端框架Django开发web应用。不得不说,Django继承了Python的简洁性,用它来
- 前言reinhard算法:Color Transfer between Images,作者Erik Reinhardwelsh算法:Tran
- 之前上传图片都是直接将图片转化为io流传给服务器,没有用框架传图片。最近做项目,打算换个方法上传图片。Android发展到现在,Okhttp