自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

stpeace的专栏

涛哥不知何许人也,亦不详其姓字。好读书,求甚解。常著文章自娱,颇示己志。忘怀得失,有始有终......

原创 链队列的建立、判空、入队、出队、求长、访头、清空和销毁

#include using namespace std; typedef struct node { int data; struct node *next; }Node; //头指针和尾指针 typedef struct { Node *front; Node *rear; }Qu...

2012-10-31 11:04:30

阅读数 18594

评论数 2

原创 判断表达式中括号是否匹配(栈的典型应用)(某公司校园招聘笔试试题)

#include using namespace std; typedef char Type; typedef struct node { Type data; struct node *next; }Node, *Stack; void initiateStack(Stack &am...

2012-10-30 14:34:15

阅读数 7295

评论数 0

原创 JM8.6编码器中的Configure函数究竟做了什么?(编程思想:抽象,间接)

从字面意思来看,configure就是配置的意思,顾名思义,Configure函数就是配置函数了。配置函数的作用是给程序配置(设定)一些初始的值,这些值在很大程度上相当于一个开关.           在用别人写的软件的时候,我们经常在软件的界面的某一个对话框里面输入一个参数,然后软件里的程序就会...

2012-10-30 12:44:33

阅读数 7489

评论数 4

原创 在JM8.6解码端提取DCT系数和残差并模拟验证itrans函数的功能

如何在JM8.6的解码端提取DCT系数呢?自然而然会想到的问题是:DCT系数从哪里来,要到哪里去,所以,要提取DCT系数,可以看它是哪里产生的,也可以看它要到哪里去,然后在任意一条路上"截击"它,必然能找到DCT系数. 下面找DCT系数的思路是要看DCT系数到哪里去. 很显然,...

2012-10-29 17:58:17

阅读数 8084

评论数 5

原创 warning和error的区别

场景:  一程序员在办公大楼抽烟,一妇女刚好撞见.               妇女:“你知不知道这东西会危害你的健康?香烟盒上有警告(Warning)啊!”         程序员:“没事儿,我是一个程序员”。             妇女:“这又怎样?”         程序员:“我...

2012-10-29 14:21:28

阅读数 8999

评论数 0

原创 H.264中整数DCT变换,量化,反量化,反DCT究竟是如何实现的?(无代码,无真相)

H.264中采用的是整数DCT变换,在实现的时候,该变换和量化又杂糅在一起,那么这些错综复杂的关系究竟是怎样纠缠的呢?在参考H.264乐园论坛会员cs1860wd的帖子和H.264 and MPEG-4 VIDEO COMPRESSION(第一版)这本书后,基于帖子和书上的讲解,给出相应的实现代码...

2012-10-27 18:12:33

阅读数 15594

评论数 15

原创 如何在JM8.6编码端提取QDCT?

毫无疑问,编码端的QDCT和解码端的QDCT完全相同,下面从编码端提取QDCT. 为简便起见,仅提取第一帧第一个宏块第一个4*4块的QDCT.JM8.6编码器最核心的编码函数是encode_one_macroblock,该函数找到了残差并进行了整数DCT变换及量化,然后Zigzag scan和...

2012-10-27 13:37:37

阅读数 8056

评论数 4

原创 《风雨张居正》 郦波

书评:         很不错,值得一读,读张居正,读一个改革家的人生历程,张居正不愧为千古名相. 书的唯一缺点是:感觉郦波老师多少有点美化张居正, 这个就不好了,历史人物之所以伟大,之所以值得大家学习,是因为他和普通人一样,都有弱点. 一个人没有弱点的人是不值得大家学习的. 有缺点才会有优点....

2012-10-27 10:47:24

阅读数 6451

评论数 0

原创 深入剖析H.264帧间预测(P宏块)

工具:foreman_qcif.yuv, JM8.6, H.264visa. 下面仅讨论P宏块的亮度Y分量,为简便起见,只讨论整数像素.   步骤1:用JM8.6编码foreman_qcif.yuv的3帧(IPP), 得到test.264,用H.264visa打开test.264. 在第二帧中...

2012-10-26 14:52:01

阅读数 10911

评论数 15

原创 深入剖析H.264帧内预测(I宏块)

工具: foreman_qcif.yuv, JM8.6, H.264visa. 下面仅讨论第一帧第一个宏块MB(16 * 16)的亮度Y分量.       步骤1:用JM8.6编码foreman_qcif.yuv的第一帧, 得到test.264,用H.264visa打开test.264, 然...

2012-10-26 13:21:22

阅读数 9808

评论数 16

原创 链栈的建立、判空、入栈、出栈、求长、访顶、清空和销毁

#include using namespace std; typedef struct node { int data; struct node *next; }Node, *Stack; void initiateStack(Stack &s) { s = new Node;...

2012-10-25 20:53:49

阅读数 10315

评论数 1

原创 利用循环链表(单链)实现Josephus环(某公司校园招聘笔试试题)

#include using namespace std; typedef struct node { int data; struct node *next; }Node; Node *createRing(int n) { Node *p = new Node[n]; //批量生成结...

2012-10-25 19:03:38

阅读数 6666

评论数 4

原创 双链表的建立、求长、定位、插入、删除、输出和释放(带头结点且成环状)

#include using namespace std; typedef struct node { int data; struct node *next, *prior; }Node, *DList; //建立带头结点的双链表(最终成环状) DList createDList() {...

2012-10-25 18:58:17

阅读数 6821

评论数 4

原创 ifstream类用法入门 (可以避免在控制台上手动输入数据)

在目录下建立myData.txt, 在其中输入:   1 2 3   4      5 6 7 执行下面程序: #include #include using namespace std; int main() { ifstream cin("myData.tx...

2012-10-25 15:59:39

阅读数 6583

评论数 0

原创 单链表的就地逆置 (单链表带头结点)(某公司校园招聘面试试题)

面试腾讯,被问此题,由于紧张,程序有误,甚为遗憾!下面给出正确的程序: #include using namespace std; typedef struct node { int data; struct node *next; }Node, *List; List createLis...

2012-10-25 15:35:52

阅读数 7362

评论数 1

原创 骇人听闻的二分查找(某公司校园招聘笔试试题)(据说只有10%的程序员可以写出没有bug的二分查找)

二分查找思路很简单,但要把程序写对,却很难,有兴趣的话,可以在网上查一下相关资料,下面给出两种常见的错误:(至于具体错误原因,可以分析程序的执行) 错误程序1: #include <iostream> using namespace std; int binarySearc...

2012-10-24 21:16:06

阅读数 8239

评论数 13

原创 顺序查找

#include using namespace std; int seqSearch(int a[], int n, int key) { int i = 0; while(i < n && a[i] != key) i++; //跳出循环的条件必然为i等于n...

2012-10-24 19:26:49

阅读数 6264

评论数 0

原创 类模板stack小试牛刀

#include #include using namespace std; int main() { stack s; int n = 100; int r = 8; // r进制 while(n)//范式 { s.push(n % r); n /= r; } w...

2012-10-24 18:56:31

阅读数 6018

评论数 0

原创 类模板vector入门

#include #include #include using namespace std; int main() { // vector是类模板, vector是类(类似于string) vector v; int i; for(i = 0; i < 10;...

2012-10-24 18:35:43

阅读数 6245

评论数 0

原创 类string入门

#include #include #include using namespace std; int main() { string s; //s是string类的对象 cout << s.length() << en...

2012-10-24 18:14:22

阅读数 6245

评论数 2

原创 A升杯子和B升的杯子如何倒出C升的水?(某公司校园招聘笔试试题,某另外公司校园招聘笔试试题)

从数学角度进行分析,可以给出一个规律:A升杯子和B升的杯子可以倒出的水为 k * gcd(A, B)升, 下面我将给出一个简要的数学说明:(只考虑整数)      假设A = 5, B = 7吧,我们可以把这两个杯子等价为A = 5, B = 2, 继续等价为A = 3, B = 2, 继续等价为...

2012-10-24 14:14:40

阅读数 7515

评论数 0

原创 整数数组中大于或等于平均数的元素个数(某公司校园招聘机试试题)

题目很简单,但要注意:不要把平均数求出来,因为浮点数可能导致不准确,程序如下: #include using namespace std; int getNumber(int a[], int n) { int sum = 0; //总和 int number = 0; //总个数 i...

2012-10-24 13:39:41

阅读数 6472

评论数 0

原创 回文串的判断(某公司校园招聘机试试题)

#include using namespace std; bool isSymmetric(char str[]) { int length = strlen(str); int i; for(i = 0; i < length/2; i++) if(str[i] != str...

2012-10-24 13:29:05

阅读数 6694

评论数 0

原创 如何判断平面上两条线段(注意是线段)是否相交?(某公司校园招聘面试试题)

看到题目,很多人想,这个问题太简单了,直接求直线方程,然后求交点,看方程组是否有解,你晕不晕?我在网上搜索了一下,很多思路都是求直线方程,求交点或求距离,不一而足。回顾高中学的线性规划知识,下面将给出一个我认为相对较好的算法,如果算法或程序有什么bug, 欢迎指正,谢谢。        已知线段A...

2012-10-24 11:45:07

阅读数 9810

评论数 0

原创 如何判断两个矩形是否有重叠部分?(某公司校园招聘笔试试题)

做游戏的公司,自然会关注游戏中物体是否碰撞的问题。我们知道:判断两个圆是否有重叠很简单,当且仅当 r1 + r2 #include #include using namespace std; typedef struct rectangle { float centerX; float ...

2012-10-23 23:25:10

阅读数 11780

评论数 0

原创 如何判断点P是否在三角形ABC内?

本题最好不要用直线方程或线段夹角来判断,因为这涉及到分类与讨论,下面的算法是相对比较好的算法,代码如下: #include #include using namespace std; typedef struct point { float x; float y; }Point; flo...

2012-10-23 22:47:25

阅读数 7036

评论数 0

原创 JM8.6中看起来让人不寒而栗的 int ******究竟是怎么回事?

最近又在看H.264的编码器JM8.6, 遇到了很多类似于int ******这样的指针,看起来让人不寒而栗,其实也不过如此,下面用实例来剖析一下:(特此说明一下:为了让程序更简单,下面的程序省略了释放内存的部分) 程序1: #include using namespace std; in...

2012-10-23 22:05:56

阅读数 7126

评论数 4

原创 O(log n)和O(n)折射出思维的差异

早晨一女生背着一堆书进了阅览室,结果警报响了,大妈让女生看看是哪本书把警报弄响了,那女生把书倒出来,准备一本一本的测。大妈见状急了,把书分成两份,第一份过了一下,响了。又把这一份分成两份接着测,三回就找到了,大妈用鄙视的眼神看着女生,仿佛在说O(n)和O(log n)都分不清。

2012-10-23 08:25:43

阅读数 8594

评论数 0

原创 JPEG编解码器的简要仿真(无代码,无真相)

图像、视频压缩的必要性:          设图像为720 * 480, 且为RGB图,每个色道位深为8, 故该图像的大小为:720 * 480 * 3 B   = 0.99 MB(很大,很吓人.),如果是视频,就更是吓人.                  图像、视频压缩的可行性:      ...

2012-10-22 11:22:05

阅读数 6898

评论数 0

原创 视频编解码原理及如何在VC6.0中运行JM8.6

视频编解码的思路很简单,具体算法有点复杂,下面用一个例子来类比说明视频编解码的原理:        假设你的工资是20000,你要把这个信息告诉父母,打电话就可以了,为了不说废话,你可以提前(比如春节在一起的时候)跟父母做一个约定,就是将你的实际公司除以10000, 也就是20000/10000...

2012-10-22 10:40:14

阅读数 8689

评论数 4

原创 视频资源下载网站汇集

H.264/AVC Reference Software (Joint Model)下载网站: http://iphome.hhi.de/suehring/tml/download/old_jm/

2012-10-22 10:01:17

阅读数 6519

评论数 0

原创 一个小程序入门matlab

clear clc total = 0; for i = 1 : 2 : 99 total = total + i; end total %输出total sum = sum(1 : 2 : 99) 结果为: total =         25...

2012-10-22 09:23:08

阅读数 8591

评论数 2

原创 字符串递归求长(不用任何其他变量,不用goto,不用循环)

#include using namespace std; int getStrLen(char str[]) { return *str ? getStrLen(str + 1) + 1 : 0; } int main() { char str[] = "abc"; ...

2012-10-21 23:09:41

阅读数 6506

评论数 0

原创 计数排序(线性复杂度的排序,且不需要进行大小比较)

计数排序思想很美妙,不需要进行元素间大小的比较,时间复杂度是线性的,在实践中,经常采用计数排序,该排序稳定。计数排序要求元素大小限定在一定范围内,比如[0, k], 算法代码如下:   #include using namespace std; // 0 <= a[i] <= k (...

2012-10-21 22:59:40

阅读数 7380

评论数 1

原创 堆排序(某公司校园招聘面试题目)

堆排序是一种高级的选择排序,算法代码如下:   #include using namespace std; void heapAdjust(int a[], int low, int high) { int pivotKey = a[low - 1]; int i; for(i = 2 *...

2012-10-21 22:48:53

阅读数 8092

评论数 3

原创 快速排序(某公司社招面试试题)

快速排序是对冒泡排序的改进,算法代码如下:   #include using namespace std; int partition(int a[], int low, int high) //划分 { int pivotKey = a[low]; while(low < high)...

2012-10-21 22:37:12

阅读数 6631

评论数 1

原创 模幂算法(某公司校园招聘网测题目)

712的n次方,结果后三位为696,满足这个条件的n的个数为多少?(0         这是一个典型的模幂算法问题,下面证明: (a * b) % n = [(a % n) * (b % n) ] % n   (把*换成+也成立)      设 a = k1*n + r1, b = k2*n +...

2012-10-21 20:51:08

阅读数 7135

评论数 0

原创 时间复杂度为O(n)来判断数组a[N](1 <= a[i] <= N)中是否有重复元素 (某公司校园招聘笔试题目)

判断数组中是否有重复元素,最直接的思路是用双层循环判断(O(n^2)); 也可以先排序,后比较,但基于比较的排序时间复杂度至少为O(n*logn). 所以,这些思路都不行。根据题目的限制条件,很容易想到用计数排序,时间复杂度为O(n),这当然满足题意,但是,把计数排序用在此处,无疑是大材小用了。在...

2012-10-21 17:34:46

阅读数 7831

评论数 8

原创 上楼时间到底是多少?

可以考考村里的小朋友:某人从1楼到4楼需要1分钟(匀速),问按相同速度,从1楼到8楼需要多少分钟。     ans : 7/3

2012-10-21 13:47:14

阅读数 6616

评论数 0

原创 汉诺塔游戏(经典递归)

#include using namespace std; int times = 0; void move(char src, char dst) { times++; cout " << dst << endl; } void hanNuoTower...

2012-10-21 13:38:33

阅读数 6796

评论数 0

提示
确定要删除当前文章?
取消 删除