分析:用什么样的数据结构来表示投票有很多选择;如果选择了合适的数据结构,不但可以提高时间效率还可以简化编程。more
```cpp
include
include
include
include
include
include
继续阅读 »
分析:此题根据如何来表示一条指令,有两种解法:一种是用一个整数(3位数)来表示,另一种用一个对象(含有3个成员,分别表示指令的3个位)来表示。前者的好处是存贮方便,但需要运行时“译码”;后者的好处是不需要运行时“译码”,但有额外的开销在对象的创建和复制上。根据网站的判题结果,二者的时间效率大体相当。more
继续阅读 »
算法原理
基数排序 (Radix Sort) 是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。基数排序的发明可以追溯到 1887 年赫尔曼·何乐礼在打孔卡片制表机 (Tabulation Machine)上的贡献。
排序过程:将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。
基数排序法会使用到桶 (Bucket),顾名思义,通过将要比较的位(个位、十位、百位...),将要排序的元素分配至 0~9 个桶中,借以达到排序的作用,在某些时候,基数排序法的效率高于其它
继续阅读 »
Android 追加流生成 Mp4 文件技术方案(支持中断继续生成)
背景
Android 中 Mp4 文件的生成主要是通过 Mediacodec 将摄像头采集到的视频从 YUV 格式转成 h264 ,再通过 MediaMuxer 将 h264 的视频流生成 mp4 文件,这个过程就不在赘述了, Google 一搜一大把,其中需要注意的是在将 YUV 数据送入 Mediacodec 中之前需要将 YUV 格式从 NV21 转换成编码器能接收的 I420 格式,建议这个过程使用 JNI 来提高效率, java 的实现方式可以参考一下方法:
继续阅读 »
最近有幸读了一本叫《好好说话》的书,学习到一些说话的方式和技巧,所以反思了下自己平时的说话方式,觉得有很多地方需要改进。当然,要突然改变自己的说话方式确实不太现实,因为一个人的说话方式很大程度取决于其性格,另外和受教育程度也有很大关系,但是可以慢慢来,一点点改变,一点点适应,尽量避免无效沟通,提高沟通的效率。本次先分享一个观点:
继续阅读 »
Table of Contents
{:toc}
最近被线上任务折磨得不行了,总是隔三差五出各种问题,导致日志丢了或者脚本没跑成功,
出了问题就需要手动去修复,比如手动把少的日志补齐,重跑失败的脚本。有些脚本之间有依赖关系,
手动跑起来就比较复杂,需要隔一会看一眼脚本有没有跑完,再接着跑下一个,严重影响效率。
所以我想如果有个程序能帮我定义好我的任务依赖关系,由它来自动解决运行时的依赖,
如果能有可视化界面看到执行状态,管理任务就更好了。
最近找到一个满足现在这些需求的开源项目—— airflow。
继续阅读 »
去年8月份,写了一篇工作感想(一),时隔半年有余,也有些想法,特记录于此,主要有以下5点:
不断学习
工作心态的转变
学会拒绝
提高工作效率
要有备份习惯
继续阅读 »
Spring简介
Spring框架由Rod Johnson开发,Rod Johnson's twitter,Rod Johnson's 百度百科,2004年发布了Spring框架的第一版。Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。
Spring总结起来优点如下
* 低侵入式设计,代码的污染极低
* 独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺
* Spring的IoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦
* Spring的AOP支持允
继续阅读 »
今天看《程序员面试宝典》时偶然看到讲数组和指针的存取效率,闲着无聊,就自己写了段小代码,简单分析一下C语言背后的汇编,可能很多人只注重C语言,但在实际应用当中,当出现问题时,有时候还是通过分析汇编代码能够解决问题。本文只是为初学者,大牛可以飘过~
C源代码如下:
#include "stdafx.h"
int main(int argc, char* argv[])
{
char a=1;
char c[] = "1234567890";
char *p = "1234567890";
a = c[1];
a = p[1];
return 0;
继续阅读 »
【数据结构类】实现一个对链表排序的算法,C`C++可以使用std∶∶list
Java使用LinkedList
要求先描述算法,然后再实现,算法效率尽可能高效。
基本思想:
快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
算法过程
设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小
继续阅读 »