自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (6)
  • 收藏
  • 关注

原创 有序单链表合并(递归法)

只是提供思路,缺少很多边界条件的检查/* 递归法实现有序单链表的合并 */LinkedList *MergeRecursive(LinkedList *head1, LinkedList *head2){ if (head1 == NULL) return head2; if (head2 == NULL) return head1; LinkedList *head =

2015-07-31 21:51:51 475

原创 将两个有序单链表合并

假设有两个单链表,头结点分别为 list1, list2, 如果 list1为空,直接返回 list2,如果list2为空,直接返回 list1,如果两个链表均存在,那么这两个链表进行逐个元素的比较,如果list1中的元素大于 list2的,将list2的值保存到合并链表中,否则,将list1中的值保存到合并链表中去,如果任何一个链表遍历结束,将另外一个链表的余下部分保存到合并链表中去

2015-07-31 21:43:21 951

转载 判断链表是否有环及两个链表是否交叉

单向链表是最常用的数据结构之一,因此总结其常见的问题及其解决方案是很有意义的。 问题1:如何判断一个单向链表是否有环?如果有,如何找到其入口节点的指针?               算法思想:用两个指针p1,p2同时指向链表的头部,p1一次移动一步,p2一次移动两步,如果最终p1和p2重合则说明链表有环,如果p2走到空指针(链表的结尾)则说明链表无环; 如果最终p1

2015-07-31 20:12:14 565

原创 单链表删除重复节点

/* 删除链表中的重复节点 *///递归法求解LinkedList *delSame(LinkedList *head){ pLinkedList pointer,temp=head; if (head->next == NULL) //只有头结点,链表为空 { return head; } head->next = delSame(head->next); pointer

2015-07-30 23:15:41 631

原创 如何实现单链表任意两个元素交换(不包括表头)

// 凭第一感觉写的版本,算法和思路有好的想法再优化/* 交换链表任意两个元素 */void SwapItem(LinkedList *head, int posA, int posB)//从非头结点开始交换操作{ //保证至少存在两个节点 assert(head && head->next && head->next->next); assert(posA>=1 &&

2015-07-30 20:40:40 1021

转载 求有环单链表中的环长、环起点、链表长

求有环单链表中的环长、环起点、链表长1.判断单链表是否有环  使用两个slow, fast指针从头开始扫描链表。指针slow 每次走1步,指针fast每次走2步。如果存在环,则指针slow、fast会相遇;如果不存在环,指针fast遇到NULL退出。  就是所谓的追击相遇问题:    2.求有环单链表的环长   在环上相遇后,记录第一次相遇点为Pos,之后指针slo

2015-07-29 20:18:39 309

转载 归并排序

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plaincopy//将有序数组a[]和b[

2015-07-29 20:04:25 315

原创 单链表排序

/* 链表冒泡排序 */void BubbleSortList(Node *p){ assert(p && p->next); //至少有一个节点 Node *_temp = p->next; Node *_node = p->next; int temp; for (; _temp->next; _temp = _temp->next) { for (_node=p->ne

2015-07-29 13:45:01 330

原创 单链表反转

* 单链表反转另外一种写法 */LinkedList *ListReverse(LinkedList *L){ LinkedList *current, *pNext; if (L == NULL) return NULL; //链表不存在,这里L指的是头结点 if (L->next == NULL) return L; current = L->next; while (curr

2015-07-28 21:49:38 293

转载 链表中的头指针和头节点

线性表使用顺序(数组)存储时有个弊端,那就是在插入和删除时需要大量的移动数据,这显示是非常消耗时间的,所以可以采用链式存储,即有一个指针域(单链表),来记录下个结点的存储位置(地址),这样在插入和删除结点时只需要修改指针域即可,从而大量减少移动数据所消耗的时间。来看链表的定义:struct node { int data; struct node *next;};其中有两个元素

2015-07-28 21:16:22 538

原创 单链表操作

单链表反转和逆序:http://www.nowamagic.net/librarys/veda/detail/2241

2015-07-28 21:08:02 295

原创 如何找出单链表中的倒数第K个元素

/* 找出单链表中倒数第K个数 *//* 查找过程中,设置两个指针,让其中一个指针比另一个指针先前移动 K-1 步 ,然后两个指针同时移动,循环直到先行指针为NULL */templatestruct LinkedList{ T data; LinkedList *next;};templateLinkedList* FindElem(LinkedList* head, int

2015-07-28 19:30:23 484

原创 找出数组中重复次数最多的数

/* 使用Map映射表 */bool findMostFrequentInArray(int *a, int size, int &val){ assert(a); if (size == 0) return false; map m; for (int i=0; i<size; ++i) { if (++m[a[i]] >= m[val]) val = a[i]; }

2015-07-27 15:28:18 783

原创 如何计算两个有序整型数组的交集

/* 二路归并查找数组交集 */int mixed(int array1[], int n1, int array2[], int n2, int* mixed){ int i=0, j=0, k=0; while (i<n1 && j<n2) //有一个数组遍历结束,此次查询结束 { if (array1[i]==array2[j]) { mixed[k++] = arr

2015-07-27 14:28:01 537

原创 如何在排序数组中,找出给定数字出现的次数

如何在排序数组中,找出给定数字出现的次数 ?  例如,数组 [1, 2, 2, 2, 3]中2的出现次数为 3/* 如何在排序数组中,找出给定数字出现的次数 */int findItemInorderArray(int *arr, int key, int start, int end){ assert(arr); assert(start>=0 && end>=0);

2015-07-27 09:55:58 1191

原创 二分查找法的递归和非递归实现

/* 非递归法实现二分查找 *///实现一个查找关键字在数组中的位置,并返回下标,如果不存在,返回-1int getPosition(int *arr, int len, int key) //len:数组长度,key:待查找的关键字{ int first=0, last=len-1; while (1) { if (first<last) { if (key

2015-07-26 23:55:57 438

转载 基于NVIDIA显卡的硬编解码

1.硬解码软编码方法:大体流程,先用ffmpeg来读取视频文件的包,接着开启两个线程,一个用于硬解码,一个用于软编码,然后将读取的包传给解码器,编码出的frame download到内存,然后做scale处理,将scale后的帧和编码参数一起传给编码函数,最终生成pkt包,将其写入文件。由于CUVID中CuvideoSource不支持rtsp视频流数据,不能由rtsp地址创建VideoSource

2015-07-26 20:30:38 2002 3

原创 负数除法与正数除法原理

在C语言中,负数除法运算与正数除法运算不一样,遵循原则有:(/)除号的正负取舍和一般的算数一样,符号相同为正,相异为负(%)求余符号的正负取舍和被除数符号相同-3/16 = 0 ;      16/-3 = -5;-3%16 = -3;16%-3 = 1;

2015-07-26 17:58:08 3425

原创 "\n" 与 '\n' 是否等价

换行(\n)就是光标下移一行,却不会移到这一行的开头,回车(\r)就是回到当前行的开头却不向下移动一行。按(Enter)键后会执行 “\n\r”,Tab 是制表符,就是“\t”,作用是预留8个字符的显示宽度,用于对齐。“\n” 与 ‘\n’ 有什么不同 ?“\n”是一个字符串,以'\0'字符结束,它实际包含了两个字符,而'\n'只是一个简单的字符而已。

2015-07-26 17:36:18 461

原创 逗号表达式

c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两式联接起来,如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14,(a=3*5,a*4)的值是60,原因在于赋值运算优先级高于逗号表达式。逗号表达式本身不难,常常与赋值运算符一起考,考查学生对这两个知识点的理解和考生观察是否细心。如下题

2015-07-26 17:26:38 272

原创 C语言常见函数重写

面试题中经常出现一类考题就是,重新实现C语言中的库函数,例如:strcpy,memcpy,stcmp.../* strcpy函数 */char *MyStrcpy(char *des, const char *src){ assert(des); assert(src); char *ptr; ptr = des; while ((*ptr++ = *src+

2015-07-26 11:47:48 4867

转载 error C2275 将此类型用作表达式非法

C2275: “size_t”: 将此类型用作表达式非法,同时还导致一堆变量未定义的bug。将LuaXml从lua5.1移植到5.2的时候,使用VS2010编译LuaXml_lib.dll的时候碰到了这个错误,然而使用GCC能编译成功。群上一人遇到问题:在正确的程序中增加KdPrint()调用以输出调试信息,如下://////////////

2015-07-24 22:37:01 6547

转载 H264中的码流结构分析

1、码流总体结构:h264的功能分为两层,视频编码层(VCL)和网络提取层(NAL)。H.264 的编码视频序列包括一系列的NAL 单元,每个NAL 单元包含一个RBSP。一个原始的H.264 NALU 单元常由 [StartCode] [NALU Header] [NALU Payload] 三部分组成,其中 Start Code 用于标示这是一个NALU 单元的开始,必须是"00 00

2015-07-23 22:21:57 841

转载 C++中的关键字explict

C++ explicit关键字可以帮助我们用来进行构造函数的修饰。那么其具体的操作方法是如何进行的呢?在这里将会为大家一一介绍。AD:C++编程语言中有很多比较重要的关键字在实际编程中起着非常重要的作用。我们今天为大家介绍的C++ explicit关键字就是其中一个应用比较频繁的关键字。下面就让我们一起来看看这方面的知识吧。C++ explicit关

2015-07-23 19:26:51 317

原创 C++类的继承总结

一直以来,对于C++的三种继承模式,总是当时搞明白,第二就忘的那种,看很多资料,也罗列的一条条的,对于没有真正理解的人来说,就是像冰冷的单词堆砌一样,不够直观。最近又重新温习这部分知识,算是有些新的体会,做个总结,以后有什么新的体会和改进再做更新。1、首先明白C++中public、protected、private这三种修饰符的访问权限  class CPerson{p

2015-07-23 18:23:53 303

原创 Residual block CAVLC semantics

2015-07-22 20:59:23 588

转载 CAVLC中的前缀和后缀

CAVLC中如何处理前缀和后缀的:  H264中的CAVLC在对TrailingOne之后的非零系数编码时,使用了前缀(prefix)和后缀  (suffix)的概念,并且用suffixlength来表示后缀的长度。具体编码过程是这样的:  一,将suffixlength初始化为0(如果超过10个非零系数,而且少于3个  TrailingOnes,suffixlength初始化为1)  

2015-07-22 20:43:48 489

原创 Table 9-1 -- Bit strings with "prefix" and "suffix" bits and assigment to codeNum rangs

2015-07-22 20:33:30 583

原创 Table 9-7 -- total_zeros tables for 4x4 blocks with TotalCoeff(coeff_token) 1 to 7

2015-07-22 19:21:06 449

原创 Table 9-6 -- Codeword table for level_prefix

The syntax element level_prefix is decoded using the VLC specified in Table 9-6

2015-07-22 18:09:39 381

原创 Table 9-5 -- coeff_token mapping to TotalCoeff(coeff_token) and TrailingOnes(coeff_token)

2015-07-22 17:52:34 690

原创 基于上下文自适应的可变长编码(CAVLC)

1、TotalCoeffs(非零系数的数目)、TrailingOnes(拖尾系数的数目)非零系数的数目范围从0到16,拖尾系数数目的范围从0到3,如果±1的个数大于3,只有最后3个被视为拖尾系数,其余被视为普通的非零系数。对非零系数数目和拖尾系数数目的编码通过查表得到,共有4个变长表格和1个定长表格可供选择。定长表格的码字是6bit,高4bit表示非零系数个数(TotalCoeff

2015-07-20 10:12:49 1062

原创 类和继承总结

1、使用公有派生,基类的公有成员将成为派生类的公有成员;基类的私有部分将成为派生类的一部分,但只能通过基类的公有和保护方法访问。2、派生类不能直接访问基类的私有成员,而必须通过基类方法进行访问。比如,派生类构造函数必须使用基类的构造函数。3、创建派生类对象时,程序首先创建基类的对象,这就意味着基类对象应当在程序进入派生类构造函数之前被创建。4、派生类构造函数特点

2015-07-18 10:02:50 341

转载 C++继承经典例子

c++继承经典例子#include class Base{private: int b_number;public: Base( ){} Base(int i) : b_number (i) { } int get_number( ) {return b_number;} void print( ) {cou

2015-07-17 22:25:48 684

转载 VS2010调试JM8.6

JM代码网址:http://iphome.hhi.de/suehring/tml/download/old_jm/选择下载JM8.6版本,用VS 2010打开tml.sln,如下图所示:其中,“lencod”用于视频编码,“ldecod”用于视频解码,“rtpdump”暂时不用管。接下来需要搭建环境,首先针对“lencod”进行配置:

2015-07-16 19:36:12 1757

转载 FFmpeg参数

参数FFmpeg可使用众多参数,参数内容会根据ffmpeg版本而有差异,使用前建议先参考参数及编解码器的叙述。此外,参数明细可用 ffmpeg -h 显示;编解码器名称等明细可用 ffmpeg -formats 显示。下列为较常使用的参数。主要参数-i 设定输入档名。-f 设定输出格式。-y 若输出档案已存在时则覆盖档案。-fs 超过指定的档案大小时则结束转换。-s

2015-07-15 22:06:51 2689

转载 运动估计综述

1.定义这里指基于块的运动估计,基本思想是将图像序列的每一帧分成许多互不重叠的块,并认为块内所有像素的位移量都相同,然后对每个宏块到参考帧某一给定特定搜索范围内根据一定的块匹配准则找出与当前块最相似的块,即匹配块,匹配块与当前块的相对位移即为运动矢量。2.运动估计算法2.1全搜索每一点都要比较,需计算(2*d+1)*(2*d+1)次(d是搜索范围)。对分辨率360x288,帧率

2015-07-15 21:39:15 2632

转载 块匹配算法--全搜索

原理:假设有两帧图片,第K帧(当前帧)与第K-1帧(上一帧),第K帧图片以M*N的图像块为单位,分成一个个块,块间不重叠。对于第x个图像块A,在第K-1帧中,寻找与它最匹配的图像块A',我们认为A图像块是由A'图像块平移而得到的。于是就把图像块A'到A的运动矢量MV记作图像块A的运动矢量。全搜索算法:假设图像块在X方向与Y方向的可以最大位移为Xmax与Ymax,那么在以图像

2015-07-15 21:21:47 7339

转载 H.264基本概念

frame:帧,相当于一幅图像,包含一个亮度矩阵和两个色度矩阵。field:场,一帧图像,通过隔行扫描得到奇偶两场,分别称为顶场和底场或奇场和偶场。macroblock/MB:宏块,H.264中处理(预测、变换、量化)的基本单元,大小16*16个像素。slice group:条带组,每一帧/场图像中,按照光栅扫面的顺序,将MB/MB对分成多个条带(slice)。I/

2015-07-15 19:15:51 776

原创 同步和锁

为了避免多个线程同时读写同一个数据而产生不可预料的结果,需要将各个线程对同一个数据的访问同步(synchronization)。所谓同步,既是指一个线程访问数据未结束的时候,其他线程不得对同一个数据进行访问,如此,对数据的访问被原子化了。对于允许多个线程并发访问的资源,多元信号量简称信号量(Semaphore),它是一个很好的选择,一个初始化值为N的信号量允许N个线程并发访问,线程访问

2015-07-14 21:45:39 354

sublime text2

<1> 解决Sublime Text2中文乱码问题 解压下载文件得到ConvertToUTF8.... 复制ConvertToUTF8w文件夹到C:\Users\用户名\AppData\Roaming\Sublime Text 3\Packages目录下 启动Sublime Text 3,打开乱码文件 按下ctrl+shift+c <2> 证书 复制如下三个任意一个正版注册码即可

2016-11-10

解析组合数学(英文版)

解析组合数学高清英文版,对于组合数学的学习、算法思维的培养、数学思考很有提高的一本书。

2016-01-04

解析组合数学(Analytic Combinatorics)

解析组合数学的高清英文版本,对于组合数学的学习、算法思维的养成具有很大的好处。将教会大家精确定量预测大型组合结构的性质

2016-01-04

算法分析导论-第二版

本书为全英文。它全面介绍了算法的数学分析中使用的基本方法,所涉及的内容来自经典的数学素材(包括离散数学、初等实分析、组合数学),以及经典的计算机科学素材(包括算法和数据结构)。虽然书中论述了“最坏情形”和“复杂性问题”分析所需的基本数学工具,但是重点还是讨论“平均情形”或“概率”分析。论题涉及递归、生成函数、渐近性、树、串、映射等内容,以及对排序、树查找、串查找和散列诸算法的分析。

2016-01-04

简易学生信息管理系统

简易的学生信息管理系统,实现了基本的信息浏览、添加、删除、修改、查找、修改等功能。

2015-08-16

CUDA专家手册源代码

本源码是 <>一书中的各个实例的源代码,比较齐全.适合在读书学习过程中编程验证,加深学习印象.

2014-11-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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