python 数据结构和算法
文章平均质量分 61
afanty_mo
毕业那时,我想着编程可以混口饭;
后来离职,我追求Mathematical Model;
佛说:coder谈论编程语言,码农深究数学思想
展开
-
[教程]Python 求解任意闭区间的所有素数
题目:请求出任意区间[a,b]的所有素数,简单考虑实用性 这道题看起来应该很easy是吧,但任意区间(这个问题有没get 到) Afanty的分析: 1、首先明白什么叫素数,注意用求余法判断的循环上限应该为sqrt(n)吧? 2、任意区间,a,b是不是可以为负数、小数等。 所以是不是要首先对区间下限向上取整、区间上限向下取整,得到新的区间[a,b]再判断呀: 如何判断?原创 2016-06-14 15:08:50 · 1871 阅读 · 0 评论 -
【代码】Python冒泡排序的实现
afanty分析: 对于N个数的递进冒泡排序 1、趟数是 N-1 趟 2、第 i 趟的比较次数是 N-i 次 3、两两比较前者大于(注意不是大于等于,冒泡是稳定的)后者则交换。 改进的话就是增加一个交换记录器(数),每趟检查下记录器,如果没发现交换则表示已经有序。 我上面的表述是为了方便写代码,详细的冒泡介绍可以百度下,下面是实现的代码: (注意的一个问题是,对象的引用问原创 2016-06-15 23:15:44 · 646 阅读 · 1 评论 -
Python实现N阶台阶的走法问题
题目:一栋楼有N阶楼梯,兔子每次可以跳1、2或3阶,问一共有多少种走法? Afanty的分析: 遇到这种求规律的问题,自己动动手推推就好,1阶有几种走法?2阶有几种走法?3阶有几种走法?4阶有几种走法?5阶有几种走法? 对吧,规律出来了! 易错点:这不是组合问题,因为第1次走1阶、第2次走2阶 不同于 第1次走2阶、第2次走1阶 下面是Python的递归实现代码,希望对原创 2016-06-12 01:33:25 · 6660 阅读 · 0 评论 -
三叉哈夫曼树的分析
要讲解三叉哈夫曼树之前,你得弄懂一下几个问题: 1、什么是二叉哈夫曼树 2、二叉哈夫曼树是什么类型的算法 3、在2中的算法构建出三叉或者N叉哈夫曼树一定是最优的吗? 以上的问题我就不给予具体的answer,其实二叉哈夫曼树就应用了贪心算法,对于该算法不熟悉的同学赶紧去补补书 贪心算法无法保证全局最优,而是提供了局部最优的一种解决方法。(当然证明为最优的贪心策略就可以的,前原创 2016-07-08 09:16:11 · 10222 阅读 · 1 评论 -
python实现螺旋矩阵的填充
afanty的分析: 关于矩阵(二维数组)填充问题自己动手推推,分析下两个下表的移动规律就很容易咯。 对于螺旋矩阵,不管它是什么鬼,反正就是依次向右、向下、向右、向上移动。 向右移动:横坐标不变,纵坐标加1 向下移动:纵坐标不变,横坐标加1 向右移动:横坐标不变,纵坐标减1 向上移动:纵坐标不变,横坐标减1 代码实现: #coding=utf-8 import nu原创 2016-06-23 15:12:08 · 2935 阅读 · 0 评论