社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

用 Python 实现所有算法!Github 星标近 5w

编程派 • 5 年前 • 444 次点击  

文 | 问耕 出处 | 量子位

推荐 | 编程派公众号(ID:codingpy)

今天推荐一个Python学习的干货。

几个印度小哥,在GitHub上建了一个各种Python算法的新手入门大全,现在标星已经超过2.6万。这个项目主要包括两部分内容:一是各种算法的基本原理讲解,二是各种算法的代码实现。

传送门在此:

https://github.com/TheAlgorithms/Python

简单介绍下。

算法的基本原理讲解部分,包括排序算法、搜索算法、插值算法、跳跃搜索算法、快速选择算法、禁忌搜索算法、加密算法等。

这部分内容,主要介绍各种不同算法的原理,其中不少介绍还给出了动态示意图,以更初学者能够更直观的理解。搬运几个示例:

鸡尾酒排序算法

鸡尾酒(Cocktail shaker)排序,也叫双向冒泡排序(Bidirectional Bubble Sort)等。这是冒泡排序的一种变体。不同之处在于,冒泡排序是从低到高比较序列里的每个元素,而鸡尾酒排序从两个方向(低到高、高到低)来回排序,效率更高。

快速选择算法

快速选择(Quick Select)算法,用于查找无序列表中的第k个最小元素。这种算法及其变体,是实践中最常用的高效选择算法。

快速选择算法与快速排序算法类似,选择一个元素作为基准来对元素进行分区,将小于和大于基准的元素分在基准左边和右边的两个区域。不同的是,快速选择并不递归访问双边,而是只递归进入一边的元素中继续寻找。

ROT13加密算法

Rot13(rotate by 13 places)是一种非常简单的替换加密算法,用于加密26个英语字母。方法是:把每个字母用其后第13个字母代替。

当然这种算法破解起来也很简单,只需要反向替换就行,所以这种算法几乎提供不了什么加密安全性,并且经常作为弱加密的典型案例。

此外,这个项目还给出了多种Python算法的代码实现

包括二叉树(Binary Tree)、动态规划(Dynamic Programming)、散列(Hashes)、线性代数、机器学习、神经网络等。

比方在机器学习这个类别里,给出了随机森林分类、随机森林回归、朴素贝叶斯、决策树、k值聚类、线性回归、逻辑回归、感知机等。

这里截个梯度下降代码实现的图,做个示意。

希望这个项目对你学习有帮助,再给一次传送门:

https://github.com/TheAlgorithms/Python

还有一事。

这几个印度小哥,不仅仅搞了一个学Python的项目,类似的资源收集项目还包括:Java、C、C++、Scala、C#等……

—  —

回复下方「关键词」,获取优质资源


回复关键词「 pybook03」,立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「pybooks02」,立即获取 O'Reilly 出版社推出的免费 Python 相关电子书合集

回复关键词「书单02」,立即获取主页君整理的 10 本 Python 入门书的电子版



印度小伙写了套深度学习教程,Github上星标已经5000+

上百个数据文件合并,只能手动复制粘贴?教你一招十秒搞定!

一个提升图像识别准确率的精妙技巧

一文读懂:从 Python 打包到 CLI 工具

如何使用 Python 进行时间序列预测?

美亚Kindle排名第一的Python 3入门书,火遍了整个编程圈

十分钟搭建私有 Jupyter Notebook 服务器

使用 Python 制作属于自己的 PDF 电子书

12步轻松搞定Python装饰器

200 行代码实现 2048 游戏

题图:pexels,CC0 授权。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/35401
 
444 次点击