「程序猿」最全Python入门算法来了,GitHub超6.8万星

【「程序猿」最全Python入门算法来了,GitHub超6.8万星】本文经AI新媒体量子位(ID:QbitAI)授权转载 , 转载请联系出处问耕发自凹非寺
【导读】
Github上超过6.8万星标:最全算法及Python实现 。 该项目的算法包括排序、搜索等经典算法 , 描述较为详细 , 对算法原理本身、应用场景以及实现过程的可视化等 。
我们讨论机器学习的时候 , 其实很多时候都是在讨论算法 。 今天新智元向大家推荐一个好资源 , 用Python实现所有算法 。 该项目在Github上已经获得了超过6.8万星标 , 可以说非常受欢迎了 。
该项目主要包括两方面内容:算法的基本原理讲解 , 以及Python代码实现 , 并给出了算法实现过程的动图 , 非常直观易懂 。 项目地址:
冒泡算法
「程序猿」最全Python入门算法来了,GitHub超6.8万星
文章图片
冒泡排序 , 有时也称为下沉排序 , 是一种简单的排序算法 , 它反复遍历要排序的列表 , 比较每对相邻的项目 , 如果它们的顺序错误则交换它们 。 重复传递列表 , 直到不需要交换 , 这表明列表已排序 。
桶排序算法
「程序猿」最全Python入门算法来了,GitHub超6.8万星
文章图片
桶排序(Bucketsort)或所谓的箱排序 , 是一个排序算法 , 工作的原理是将数组分到有限数量的桶里 。 每个桶再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序) 。 桶排序是鸽巢排序的一种归纳结果 。
鸡尾酒排序算法
鸡尾酒排序 , 也叫双向冒泡排序(BidirectionalBubbleSort)等 。 这是冒泡排序的一种变体 。 不同之处在于 , 冒泡排序是从低到高比较序列里的每个元素 , 而鸡尾酒排序从两个方向(低到高、高到低)来回排序 , 效率更高 。
插入排序
「程序猿」最全Python入门算法来了,GitHub超6.8万星
文章图片
插入排序(英语:InsertionSort)是一种简单直观的排序算法 。 它的工作原理是通过构建有序序列 , 对于未排序数据 , 在已排序序列中从后向前扫描 , 找到相应位置并插入 。 插入排序在实现上 , 通常采用in-place排序 , 因而在从后向前扫描过程中 , 需要反复把已排序元素逐步向后挪位 , 为最新元素提供插入空间 。
归并排序
归并排序(英语:Mergesort , 或mergesort) , 是创建在归并操作上的一种有效的排序算法 ,。 1945年由约翰·冯·诺伊曼首次提出 。 该算法是采用分治法(DivideandConquer)的一个非常典型的应用 , 且各层分治递归可以同时进行 。
快速排序
快速排序(英语:Quicksort) , 又称划分交换排序(partition-exchangesort) , 简称快排 , 一种排序算法 , 最早由东尼·霍尔提出 , 用作按顺序放置数组元素的系统方法 。
堆排序
堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法 。 堆是一个近似完全二叉树的结构 , 并同时满足堆积的性质:即子节点的键值或索引总是小于(或者大于)它的父节点 。
基数排序
基数排序(英语:Radixsort)是一种非比较型整数排序算法 , 其原理是将整数按位数切割成不同的数字 , 然后按每个位数分别比较 。 由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数 , 所以基数排序也不是只能使用于整数 。 基数排序的发明可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(TabulationMachine)上的贡献 。
选择排序
选择排序(Selectionsort)是一种简单直观的排序算法 。 它的工作原理如下 。 首先在未排序序列中找到最小(大)元素 , 存放到排序序列的起始位置 , 然后 , 再从剩余未排序元素中继续寻找最小(大)元素 , 然后放到已排序序列的末尾 。 以此类推 , 直到所有元素均排序完毕 。


推荐阅读