
python算法
~兰心蕙质~
草木有本心,何求美人折?
展开
-
堆排序:Python实现(中级排序法)
堆排序:Python实现(中级排序法) 在认识堆之前我们先了解一下相关的一些概念: 维基百科(树): 在计算机科学中,树(英语:tree)是一种抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 下图就是一个树 维基...原创 2019-08-13 14:16:10 · 226 阅读 · 0 评论 -
快速排序:python实现 归并(高级排序法)
快速排序:python实现 递归(高级排序法) 维基百科: 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),简称快排,一种排序算法,最早由东尼·霍尔提出。在平均状况下,排序 n个项目要O(nlog n)(大O符号)次比较。在最坏状况下则需要O(n^2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他算法更快,因为它的内部循环(i...原创 2019-08-10 11:31:41 · 412 阅读 · 0 评论 -
插入排序:Python实现(低级排序法)
插入排序:Python实现(傻帽排序法) 维基百科: 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1) 的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 复杂...原创 2019-08-09 07:13:01 · 193 阅读 · 0 评论 -
选择排序:Python实现(低级排序法)
选择排序:Python实现(傻帽排序) 维基百科: 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 复杂度分析: 选择排序的交换操作介于 0和 (n-1)次之间。选择排序的比较操作为 n...原创 2019-08-09 05:18:55 · 781 阅读 · 1 评论 -
冒泡排序&优化:Python实现(低级排序法)
冒泡排序&优化:Python实现(傻帽排序法) 维基百科: 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,时间复杂度O(n²)。 说白了,步骤是这样子的...原创 2019-08-08 18:27:30 · 281 阅读 · 0 评论 -
二分查找:Python实现(循环&递归)
二分查找:Python实现(循环&递归) 维基百科: 在计算机科学中,二分搜索(英语:binary search),也称折半搜索(英语:half-interval search),对数搜索(英语:logarithmic search),是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间...原创 2019-08-08 07:40:28 · 1691 阅读 · 0 评论