算法
啊_酷
热爱生活,喜欢运动
展开
-
python实现插入排序
一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下: 从第一个元素开始,该元素可以认为已经被排序取出下一个元素,在已经排序的元素序列中从后向前扫描如果该元素(已排序)大于新元素,将该元素移到下一位置重复步骤3,直到找到已排序的元素小于或者等于新元素的位置将新元素插入到该位置后重复步骤2~5 #! /usr/bin/env python # -*- coding: ut原创 2014-06-30 18:43:42 · 752 阅读 · 0 评论 -
python实现冒泡排序法
冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。原创 2014-06-30 18:38:48 · 1571 阅读 · 0 评论 -
python实现递归算法
#! /usr/bin/env python # -*- coding: utf-8 -*- def recursive_1(n): """ 楼梯有n阶台阶,上楼可以一步上3阶,也可以一步上5阶, 计算共有多少种不同的走法? 设n阶台阶的走法数为f(n)。如果台阶数小于等于3,走法有2种(一步上3个台阶或者5个台阶), 即f(n原创 2014-07-02 13:55:23 · 1075 阅读 · 0 评论 -
python实现基数排序
例如: 待排序数组[17, 4, 56, 38, 9, 91] 第一步 首先根据个位数的数值,在走访数值时将它们分配至编号0到9的桶子中: | 0 | 91 | 0 | 0 | 4 | 0 | 56 | 17 | 38 | 9 | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |原创 2014-07-02 18:52:17 · 653 阅读 · 0 评论 -
算法要素
1. 如果数据可以排序的话,首先进行排序。原创 2014-06-17 15:17:31 · 501 阅读 · 0 评论 -
Python实现快速排序算法
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分原创 2014-09-01 16:07:37 · 3121 阅读 · 0 评论 -
Python实现二分查找法
二分查找可以解决(预排序数组的查找)问题:只要数组中包含T(即要查找的值),那么通过不断缩小包含T的范围,最终就可以找到它。一开始,范围覆盖整个数组。将数组的中间项与T进行比较,可以排除一半元素,范围缩小一半。就这样反复比较,反复缩小范围,最终就会在数组中找到T,或者确定原以为T所在的范围实际为空。对于包含N个元素的表,整个查找过程大约要经过log(2)N次比较。 #!/usr/bin/env原创 2014-09-01 15:05:11 · 792 阅读 · 0 评论