摘要: 伪代码: 其中参数说一个数组A[1..n],包含长度为n的要排序的一个序列。该算法原址排序输入的数,在任何时候,最多只有其中常数个数字存储在数组外面。 性能分析: 时间复杂度: 最好情况: O(n) 最坏情况和平均情况: O(n2) 额外空间: O(1) 稳定 适用情况:n小的数组 Java代码: 阅读全文
posted @ 2017-05-18 19:56 dear_diary 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。 *args **kw 两者同时使用 阅读全文
posted @ 2017-05-18 11:29 dear_diary 阅读(356) 评论(0) 推荐(0) 编辑
摘要: python中初始化实例属性 虽然我们可以自由地给一个实例绑定各种属性,但是,现实世界中,一种类型的实例应该拥有相同名字的属性。 普通例子: __init__() 方法的第一个参数必须是 self(也可以用别的名字,但建议使用习惯用法),后续参数则可以自由指定,和定义函数没有任何区别。 相应地,创建 阅读全文
posted @ 2017-05-18 10:54 dear_diary 阅读(665) 评论(0) 推荐(0) 编辑
摘要: 回溯法是一个既带有系统性又带有跳跃性的搜索算法。它在包含问题的所有解的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任意一结点时,先判断该结点是否包含问题的解。如果肯定不包含,则跳过对该结点为根的子树搜索,逐层向其祖先结点回溯;否则 ,进入该子树,继续按深度优先策略搜索。 阅读全文
posted @ 2017-05-17 10:12 dear_diary 阅读(11987) 评论(0) 推荐(1) 编辑
摘要: 问题: 定义了一个新函数 想在运行时动态增加功能 又不想改动函数本身的代码 通过高阶段函数返回一个新函数 装饰器 python内置的@语法就是为了简化装饰器 使用 decorator 用Python提供的 @ 语法,这样可以避免手动编写 f = decorate(f) 这样的代码。 类似上述的方法2 阅读全文
posted @ 2017-05-16 22:33 dear_diary 阅读(373) 评论(0) 推荐(0) 编辑
摘要: Python支持的函数式编程 不是纯函数式编程:允许有变量 支持高阶函数:函数也可以作为变量传入 支持闭包:有了闭包就能返回函数 有限度的支持匿名函数 高阶函数:能接受函数做参数的函数 变量可以指向函数 函数的参数可以接收变量 一个函数可以接收另一个函数作为参数 能接收函数作为参数的函数就是高阶函数 阅读全文
posted @ 2017-05-16 14:43 dear_diary 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2017-05-14 11:46 dear_diary 阅读(1296) 评论(0) 推荐(0) 编辑
摘要: 分解:将原问题划分成形式相同的子问题,规模可以不等,对半或2/3对1/3的划分。 解决:对于子问题的解决,很明显,采用的是递归求解的方式,如果子问题足够小了,就停止递归,直接求解。 合并:将子问题的解合并成原问题的解。 这里引出了一个如何求解子问题的问题,显然是采用递归调用栈的方式。因此,递归式与分 阅读全文
posted @ 2017-05-14 11:21 dear_diary 阅读(10730) 评论(0) 推荐(0) 编辑
摘要: grep命令 grep命令:查找文件里符合条件的字符串 grep函数用于在文件中查找可以与模式匹配的文本,并显示其所在行 grep函数的模式字符串即为基础正则表达式: 选项: -a 将二进制文件当做文本文件处理 -c 统计找到匹配的次数 -i 忽略大小写 -n 输出匹配的行号 -v 反向查找,即输出 阅读全文
posted @ 2017-05-04 13:55 dear_diary 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 重定向 “一切都是文件”是Linux的重要设计思想。Linux对于从键盘输入\向屏幕输出以及向屏幕输出错误信息三个数据流分别定义为文件stdin, stdout, stderr。 命令(可执行程序)从文件读取数据(包括stdin和数据文件、设备文件),向文件输出结果和错误信息(通常是屏幕) 数据流重 阅读全文
posted @ 2017-05-04 10:52 dear_diary 阅读(547) 评论(0) 推荐(0) 编辑