摘要:并归排序是学习分治法 (Merge Sort) 的好例子。而且它相对于选择,插入,冒泡排序来说,算法性能有一定提升。我首先会描述要解决的问题,并给出一个并归排序的例子。之后是算法的思路以及给出伪代码。算法的实现部分用Python完成。最后自己尝试说明白算法分析。问题描述问题描述很简单,输入一组未排序的数组,如左边的数组,通过并归排序算法的计算,输出一组正确排序的数组,如右边的数组。如果利用上面这个例子来做并归排序的话,应该首先将该数组切割成两半,对左边一半进行排序,在对右边一半进行排序,在合并排序好的左右数组。如下图所示:思路和伪代码可以从例子中看出,并归排序就是一个先分后合的过程:递归排序左
阅读全文
摘要:在看Dive Into Python中有关描述文件读写那章节的时候,看到了有关with的用法,查阅下相关资料,记录下来,以备后用。官方的reference上有关with statement是这样说的,With申明把由context manager定义的方法的执行块包装起来。这样可以把try...except...finally的使用模式封装起来已被之后方便重用。官方的定义如下:1 with_stmt ::= "with" with_item ("," with_item)* ":" suite2 with_item ::= expre
阅读全文
摘要:学习Python中的lambda函数的时候,才发现原来Python中的AND和OR还可以有一些别的用法。Python中的布尔逻辑计算的结果并非返回布尔值,而是返回它们相互之间的某一个。文章的部分例子来源于Dive Into Python。ANDAND的表达式返回所遇到的第一个假值,如果表达式中无假值,则返回表达式中最后一个值。在Python中,0、‘’、[]、()、None这五个值在布尔环境中为假,例子如下:>>>() and 'foo'()>>>'python' and 'foo' and 'lamb
阅读全文
摘要:尽管工作中有各种各样的不爽,但学习终归要继续。给自己设定一个目标吧Python强化,Unix慢慢入门,算法与数据结构强化至于工作上的ArcEngine,ArcServer之类的我想对老板说呵呵了他把我当代码工人,我不能把自己当代码工人,对吧?
阅读全文