
java
文章平均质量分 83
芦笛
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c2java 第0篇
最近因业务关系,开始正儿八经的学java。因为C的背景,先入为主, 就和C做比较学习。 /*Struct.java -- how C to java * OO 的四大要素: 抽象,封装,模块化,分层 * Java 的优点: * 安全性: * 1. 引用必须初始化; * 2. 数组下标检查; * 3. 死机时优雅的打印StackTrace。 * 其他优点以后原创 2014-03-10 20:04:46 · 1597 阅读 · 0 评论 -
eclim Java/C使用配置
背景 在windows上,虽然ctags+cscope 甚至可以对java启用, 但是重名的太多,我需要更精确些。于是找到eclim。YCM 目前还不支持java, 且在linux我好像偶尔会卡的感觉, 而eclim 同时支持java和C(需CDT), 虽然基于java (是的: 配置 C IDE 基于java 写的eclipse 需要gui, 在linux ssh 连接终端是原创 2014-06-07 19:55:27 · 2631 阅读 · 0 评论 -
eclim CSearch macro 问题的解决过程备忘录
问题: CSearch 宏时, RuntimeException: Could not find file with URI because it is a relative path, and no base URI was provided. 调试准备 "verbose message let g:EclimLogLevel = 10 "重定向vim messages :red原创 2014-06-10 17:43:03 · 1298 阅读 · 0 评论 -
c2java 回溯,下一个排列和子集和
穷举:生成所有候选解,然后找出需要的解。 回溯:把解表示成向量,每个分量取自一个有限集合。从部分解开始,每次添加解的一个分量,然后判断如果有可能扩展成完整解则递归下去,否则换成下一个。可以看做是隐式图上的深度优先搜索。 回溯/穷举的复杂度,最坏时和后者一样,通常情形因为不必遍历所有子节点,还是比较快的。 回溯框架: backtrack(a[], k) if a[0,...,k] i原创 2014-05-27 20:01:10 · 1013 阅读 · 0 评论 -
c2java Greedy 之任务调度
最近调试一个java工程的时候,我遇到不是期望的输出结果时,是这么干的: A1注释掉抛出的异常; A2加打印对比异常输入和正常输入; A3进一步加打印缩小范围。 其实只需:B1静下心来仔细观察异常栈帧。 A1是希望改了使程序走完正常流程,得到期望的结果。这是一个局部最优选择。 在某些情形下,我们没得选择,只能根据当前得到的部分信息做判断。说白了就是不断试错的过程。比如在荒郊野外原创 2014-06-10 19:08:02 · 1184 阅读 · 0 评论 -
c2java 回溯之数独
数独 9x9的格子均分为3x3块,其中一些格子填有1~9之间的数字。请把空格填满,使得 每行,每列和每个块中,1~9每个数字只出现一次。原创 2014-05-27 20:07:22 · 1038 阅读 · 0 评论 -
c2java select algorithm
对于很多应用来说,随机算法是最简单的或者最快的。既简单又快的有没有呢? 那需要深刻的洞察力或者革命性的突破。 什么是随机算法 随机算法与确定算法区别是:它还接收输入随机比特流来做随机决策。 对于同一个输入,每次运行所用的算法行为都不同,虽然结果都是一样的。 Foiling an adversary 可以构造一个输入使得一个确定性算法运行时间最长。 随机算法可以看作是从原创 2014-06-17 19:31:37 · 880 阅读 · 0 评论 -
ssdp 在android上的一些问题 01.07 更新 01.08再次更新
只用MulticastLock是不够的。 先看ubuntu miniDLNA/android BubleUPnP 的抓包例子: # 192.168.2.103:33940 --> 239.255.255.250:1900 M-SEARCH * HTTP/1.1 Man: "ssdp:discover" Mx: 3 Host: 239.255.255.250:1900 St: ssdp原创 2015-01-06 21:56:31 · 1478 阅读 · 0 评论 -
ubuntu环境下我的第一个android apk (2014.12.12更新)
背景 ==== 终极目的是把ffplay2放到android手机上跑起来。现在我们该进入android这个新世界了。我的环境是ubuntu 14.04。手机借了一个HTC 4.4.4的。 下载 ==== sudo apt-get install ant openjdk-7-jdk #ant 相当于make, jdk用来编译java代码。 android-ndk-r10d-li原创 2014-12-11 21:29:42 · 1771 阅读 · 0 评论 -
ffplay2 for android v2.8 发布
项目地址:https://github.com/DeYangLiu/AndroidPlayer/ 看点: 用ListView实现的简易文件浏览器。 用intent启动另一个Activity。 ndk 调试。 移植ffmpeg 2.5和sdl2 到android的各种坑。 同时编译多个库 ==== ln -s /mnt/OpenSource/SDL_image jni/原创 2014-12-17 22:41:57 · 2294 阅读 · 10 评论 -
c2java 动态规划之模糊匹配
字符串匹配 精确: indexOf(String str); -- strstr(), O(mn)。 lastIndexOf(String str); -- continue 的别样用法。 matches(String regex); -- Regex.compile()/match()。 模糊: java package? Spell Checker -- 两个字符串的相似程度原创 2014-06-04 19:38:07 · 1042 阅读 · 0 评论 -
并行计算有向无环图和fork/join 框架
从多任务OS开始,线程主要用来表示IO异步;而今随着4G和多核等的到来,计算密集型又热门起来了。 硬件价格和性能从低到高: PC/Laptop multi core, memory shared PC clusters SuperComputers 假设一个理想并行计算机:每个处理器计算能力相同,忽略调度, static thread 是对一个虚拟处理器的软件层面的抽象; s原创 2014-05-20 21:04:41 · 1988 阅读 · 0 评论 -
c2java 第7篇 图的连通分量,关节点和桥
图的连通分量,关节点和桥 ==== 对于有向图,我们称其一个子图是强连通分量,是指任意两点u,v, 都有两条路径u到v和v到u。 对于连通无向图,我门称其一个子图是双连通分量,是指任意两点u,v,存在一个圈包含u,v。与无向图相关联的还有关节点x,是指去掉x,图不连通;桥(u,v)是指去掉这条边,图不连通。 求解算法的要义在于首先要理解: 树边-前向边-后向边-交叉边 "Conside原创 2014-04-29 19:12:02 · 2496 阅读 · 0 评论 -
c2java 第1篇 泛型和双链表
上篇我对BigInteger 膜拜了一番,以为很复杂呢,结果看jdk带的源码,也就一个3000行java文件而已。因而右必要自己亲自写一些底层的东西。 一来是为了练手,二来是为了体会java的思维方式,三是比较C++的后继者们扬弃了什么。 废话不说,要点都写在注释里面了: /*LinkedListTest.java --模仿C风格的双链表 1. head->func(head)原创 2014-03-17 20:03:42 · 1191 阅读 · 0 评论 -
c2java 第5篇 栈和中缀表达式的直接计算
中缀表达式一般是先转换为后缀表达式,然后再计算的,其实我们可以边转换边计算。 /*Infix.java 使用两个栈直接求解中缀表达式,一个栈保存运算符S,一个栈保存操作数D。 例子: a+b*c D:a,b S:+ D:a,b,c S:+,* D:a,bc S:+ <-- 每次取一个运算符,弹两个操作数 D:a+bc S: a*b/c+d原创 2014-04-14 19:53:31 · 1452 阅读 · 1 评论 -
c2java 第3篇 红黑树删除的理解和jdb调试初步(2014.04.03更新)
红黑树节点的删除,值替换后不改变红黑属性,归结为删除最多有一个孩子的节点,对应到2-3-4树叶节点的: 1. 4-节点 2. 3-节点 3. 2-节点 a.兄节点至少是3-节点: 两次转移. b.弟节点是2-节点:一次转移,一次融合. c.父节点是2-节点:cascading 2-3-4树的删除太复杂,估计没人用在实践中;并且还有个缺点: 真正该删除的保留,而其他原创 2014-04-02 19:09:43 · 1273 阅读 · 0 评论 -
c2java 第8篇 网络流
Edmonds-Karp 算法: 使用bfs找增广路经,复杂度min(O(VE^2), O(EF)), 其中F是最大流的流量. 依据是 最大流最小割定理: 1. 对于任一流f和任一割c, 流量|f| = |c| 2. f 是最大流 残留网络Gf没有增广路径 存在一个割,其容量等于f的流量。 应用例子 ==== liquids in pipes, parts through原创 2014-05-06 19:27:15 · 723 阅读 · 0 评论 -
c2java 第2篇 红黑树之插入
红黑树在C++ STL 和 java Collection 里面作为Set, Map 的底层存储结构,非常重要。作为CS树中一个特别树种, 理解了它, 差不多就算入门道了。套用钱砚堂赞王芗斋先生的话:(郭老)夫子之墙高千仞,君既入室且登堂。 /*RBTree.java -- Red Black Tree doc: 0. 红黑树与AVL树的比较: 插入最多只需要2次旋转原创 2014-03-25 19:23:23 · 852 阅读 · 0 评论 -
c2java 第6篇 图的表示,最短路,圈检测和拓扑排序
/* 图的表示 === 最简单的是临接矩阵了 int n = 10; int[][] adjMat = new int[n][n]; 如果边数接近顶点数的平方,就用这个很合适。 如果边比较稀疏,顶点又比较多,为了不浪费空间,可选用临接表 int i, n = 10; int[][] adjList = new int[n][0]; for(i = 0; i adjList[原创 2014-04-21 19:54:24 · 862 阅读 · 0 评论 -
c2java 第4篇 二叉堆和Huffman编码在视频编码中的运用
完全二叉树也可以用数组表示的原创 2014-04-08 20:23:17 · 873 阅读 · 2 评论 -
c2java 第9篇 FFT
傅里叶分析是什么? 设多项式A(x) = a_0 + a_1*x^1 + a_2*x^2 + ... + a_{n-1}*x^{n-1}, 系数向量记为a = (a_0, a_1, ..., a_{n-1}), 多项式求值向量记为y=(y_0, y_1, ..., y_{n-1}), y_{j} = A(w_n^j), w_n = e^{2*\pi*i/n}, 称y = FT(a)为原创 2014-05-13 19:22:36 · 1499 阅读 · 0 评论 -
chez scheme for android 移植完成
到今天终于把喜欢的lisp移植到android上,前后花了不少晚上时间。android版本由scheme 命令行可执行程序, 解释器运行时petite.boot, 编译器组件scheme.boot三个文件组成。另外还开发了一个跟chez scheme官方源码无关的加载器:run-native-exe apk: 调用scheme, IO重定向到UI。运行示例:上面的截屏有几个技术点,这里总结下: ...原创 2018-03-18 23:20:04 · 1961 阅读 · 1 评论