自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jiangjinchao的博客

分享自己的学习过程

  • 博客(49)
  • 收藏
  • 关注

翻译 《237 Gbit ps unrolled hardware polar decoder》237 Gbit / s展开的硬件极化解码器

237 Gbit / s展开的硬件极化解码器简述:提出了一种使用降低复杂度的消除(SC)解码算法的极化解码器的新架构。这种完全展开的,深度流水线的架构能够实现使用现场可编程门阵列实现的(1024,512)极化码的超过237Gbit / s的编码吞吐量。该解码器比现有技术的极化解码器快两个数量级。 1、介绍:极化码证明使用低复杂度连续消除(SC)解码算法实现了无记忆信道的对称容量

2017-10-25 22:09:22 617

翻译 《 A Scalable 3-Phase Polar Decoder》可扩展的三相极性解码器

可扩展的三相极性解码器概述:本文提出了一个三相的极化码连续消除解码器。受益于解码树的本地属性,3个区域被定义和关联到三个不同的子解码器。这个方法减少了内存占用,同时与经典的SC解码器相比保证比较好的可扩展性。几个三相SC解码器在FPGA电路上实现,就分布式硬件方面的资源(LUT,D-FF)和吞吐量而言,比经典的实现更好。此外,对于N = 2^21个极化码,解码器的内存减少了37%。

2017-10-25 21:56:12 652

原创 【数据库】基础知识点

1、SQL:IBM、非过程化、查询优化器、所有关系型数据库的公共语言   table、view、datafileOracle-PL/SQL  SQL Server--T-SQL2、Oracle:支持大数据、多用户的高性能事务处理、可移植、兼容性用户进程-----SGA(系统全局区)------服务器进程3种文件:数据文件、控制文件、日志文件表 索引、视图DDL、DML、DC

2017-09-14 19:49:51 262

原创 C++多线程编程

一、1、每个进程都有自己的地址空间和一个主线程2、准并行上下文:在多处理器系统中,Windows为每个进程提供了一个虚拟地址空间,比真正的物理地址空间大得多3、线程对象:(1)程序计数器:负责处理在下一次线程获取处理器时间时要执行什么指令(2)一组寄存器:存储线程正在操控的变量当前值(3)一个栈:存储与函数和参数相关的数据4、编程范式:(1)命令式(2)声明式(3)函数

2017-09-14 17:10:19 212

原创 【LeetCode】valid-palindrom

题目: Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. For example, “A man, a plan, a canal: Panama” is a palindrome. “race a car” is

2017-08-02 22:07:44 279

原创 【LeetCode】Merge-sorted-array

题目: Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.Note: You may assume that nums1 has enough space (size that is greater or equal to m + n) to hol

2017-08-02 21:46:44 161

原创 【LeetCode】climbStairs

题目:You are climbing a stair case. It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?翻译: 你在爬一个楼梯。到达顶部有n级阶梯。 

2017-08-02 20:32:08 305

转载 KMP算法

字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上有很

2017-08-01 17:39:41 236

原创 【LeetCode】merge-two-sorted-Lists

题目: Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.翻译: 合并2个已经排序的链表,并且返回一个新的链表。这个新的链表应该由前面提到的2个链表的节

2017-08-01 14:17:06 172

原创 【LeetCode】valid-parenthesis

题目: Given a string containing just the characters , determine if the input string is valid.The brackets must close in the correct order, “()” and “()[]{}” are all valid but “(]” and “([)]” are not.翻译:

2017-08-01 14:12:25 198

原创 【LeetCode】3-Sum

说明:除了代码是自己写的,题目解析大部分来自于LeetCode刷题指南博客题目: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zer

2017-08-01 11:25:58 252

原创 【LeetCode】String-to-int

题目: Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible in

2017-07-31 21:56:43 242

原创 【leetcode】two-sum

题目: Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution.Example: Given n

2017-07-31 16:54:29 148

原创 【设计模式】讨论汇总

下面关于设计模式的理解来自于多益网络18届游戏研发内部交流群,因为考虑到内容并没有涉及到公司的具体项目,都是对设计模式本身的理解,为了方便后面的学习回顾,特意整理汇总了一下。1、你使用过什么设计模式,效果如何?看过设计模式的相关书籍,但没有自己亲手用过,因此掌握的不好。到现在比较熟悉的是创建型的

2017-07-30 16:29:20 194

原创 【后台】开发框架之Node.js

一直以来对于框架的内容都是碎片化的浏览,也没有专门分类系统学习过。下面可能会去学习的后台开发框架包括如下:Flask、Django、node.js、ACE、Boost、LAMP、QT等下面介绍Node.js。1、概念:一个机遇Google Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞I/O模型、轻量高效,包管理NPM强大,简单来说Node.js就是运行在

2017-07-30 15:46:44 575

原创 【后台】Apache&tomcat&jboss&nignx

1、Apache:使用最广泛的web服务器,跨平台性和安全性好2、Tomcat:一个免费的开源的Web 应用服务器(主要用于解析servlet/JSP,同时具备http服务),运行时占用的系统资源小,扩展性好,且支持负载平衡与邮件服务等,Tomcat在中小型系统和并发访问用户不是很多的场合下被普遍使用,成为目前比较流行的Web 应用服务器。3、一般会有Apache+Tomcat+JDK一起

2017-07-30 14:29:28 371

原创 【后台】Lighttpd

简单了解了一下Lighttpd,回头看了它的源码补上相应的笔记。Lighttpd采用多进程网络服务模型。进程分两种:监控进程watcher 和 工作进程 workers。监控进程:fork工作进程并监视工作进程的数目,一旦有工作进程退出,监控进程立即fork新的工作进程。工作进程:接收客户端请求并做出服务响应。一般情况下,存在一个监控进程和多个工作进程。max-worker

2017-07-30 14:19:23 362

原创 【后台】嵌入式服务器Boa和CGI

大三的时候做过一个大学生创新项目,基于ZigBee的无线火警系统,后台使用的服务器就是自己在S3C2410开发板上移植搭建的Boa嵌入式web服务器。最近在复习做过的项目,顺便回顾了一下相关的内容。一般的嵌入式web服务器有boa、lighttpd、thttpd等。与Apache等高性能的web服务器的主要区别是,Boa是一个单进程服务器,非常小巧,可执行代码只有约60KB,只能依次完成用户的

2017-07-30 11:26:25 4613 1

原创 【设计模式】其他模式

1、建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示(DP)。《大话设计模式》举了一个很好的例子——建造小人,一共需建造6个部分,头部、身体、左右手、左右脚。与工厂模式不同,建造者模式是在导向者的控制下一步一步构造产品的。建造小人就是在控制下一步步构造出来的。创建者模式可以能更精细的控制构建过程,从而能更精细的控制所得产品的内部结构。下面给出建造者模式的UML图

2017-07-29 16:49:56 326

原创 【设计模式】原型模式&模板方法模式

1、原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。其中有一个词很重要,那就是拷贝。可以说,拷贝是原型模式的精髓所在。举个现实中的例子来介绍原型模式。找工作的时候,我们需要准备简历。假设没有打印设备,因此需手写简历,这些简历的内容都是一样的。这样有个缺陷,如果要修改简历中的某项,那么所有已写好的简历都要修改,工作量很大。随着科技的进步,出现了打印设备。我们只需手写一份,然

2017-07-29 16:39:33 280

原创 【设计模式】适配器模式

下面内容转载 http://blog.csdn.net/wuzhekai1985          适配器模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。它包括类适配器和对象适配器,本文针对的是对象适配器。举个例子,在STL中就用到了适配器模式。STL实现了一种数据结构,称为双端队列(deque),支持前后两段的插入与删除。ST

2017-07-29 15:18:55 130

原创 【设计模式】代理模式

1、理解:为其他对象提供一种代理以控制对这个对象的访问。有四种常用的情况:(1)远程代理:为一个对象在不同的地址空间提供局部代表,从而隐藏了一个对象存在于不同地址空间的事实。(2)虚代理:根据需要创建一个资源消耗较大的对象,使得此对象只在需要时才会被真正创建。使用虚拟代理模式的好处就是代理对象可以在必要的时候才将被代理的对象加载;代理可以对加载的过程加以必要的优化。当一个模块的加载十分耗费

2017-07-29 14:49:28 126

原创 【设计模式】单例模式

1、理解:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式(不能让一个程序打开两次  如:不能同时打开2个迅雷  迅雷用的单例模式)2、下面内容转载来自 http://blog.csdn.net/wuzhekai1985 单例的一般实现比较简单,下面是代码和UML图。由于构造函数是私有的,因此无法通过构造函数实例化,唯一的方法就是通过调用静态函数Ge

2017-07-29 14:41:43 145

原创 【设计模式】策略模式

依赖c++的多态,抽象类的指针可以访问所有子类对象,(纯虚函数),可以用一个指针访问所有策略的实现类。下面内容转载下面以高速缓存(Cache)的替换算法为例,实现策略模式。       什么是Cache的替换算法呢?简单解释一下, 当发生Cache缺失时,Cache控制器必须选择Cache中的一行,并用欲获得的数据来替换它。所采用的选择策略就是Cache的替换算法。下面给出

2017-07-28 22:28:25 178

原创 【设计模式】工厂模式

主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书,这一节主要介绍工厂模式。工厂模式属于创建型设计模式,包括简单工厂模式,工厂方法模式和抽象工厂模式。我的理解就是一个类代表一个工厂,一个对象就代表一个产品,主要用于不确定会有多少个处理操作的场合,例如计算器,抽象出一个操作的接口,提供一个Process方法,每种操作创建一个子类简单工厂:对于同样的数据,不同的操作用同一个

2017-07-28 21:35:59 155

原创 【设计模式】6大原则

本系列博客主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书,也参考了其他博友的博客,如果理解有偏差希望大家指出。1、单一职责原则(SRP)就一个类而言,应该仅有一个引起它变化的原因例如:如果游戏逻辑与界面写在一起则引起变化的原因有两个2、开放-封闭原则(OCP)是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。两个特征:一是对于扩展是开放的

2017-07-28 20:14:27 196

原创 【每日算法】二分查找算法

//递归版本int binarysearch(int arr[], int left, int right, int x){ if (NULL != arr&&left <= right) { int mid; mid = (left + right) / 2; if (arr[mid] = x) return mid; else if (arr[mid] > x)

2017-07-23 21:45:06 162

原创 【每日算法】堆排序

1、堆:堆数据结构是一种数组对象。对于表示堆的数组arr[0…n-1],我们以arr[0]为根,给定某个节点下标i,令其父节点和左右后代节点的下标为:parent(i) = (i-1)/2;left(i) = 2*i+1;right(i) = 2*i+2;堆分为最大堆和最小堆,上面就是最大堆,特点就是:除根节点以外的每个节点i,都有arr[ parent(i) ]

2017-07-23 19:31:57 173

原创 【每日算法】归并排序

思路:1、分解:将n个元素分成各含n/2个元素的子序列; 2、解决:用归并排序法对两个子序列递归地排序; 3、合并:合并两个已排序的子序列以得到排序结果。归并排序的时间复杂度为O(n logn),空间复杂度为O(n)。归并排序是稳定的代码:void mergesort(int arr[], int l, int r){ if (arr == NULL || l

2017-07-23 17:37:36 169

原创 【每日算法】插入排序&选择排序&冒泡排序

void insertsort(int arr[], int length){ if (arr = NULL || length <= 0) return; for (int i = 1; i < length; i++) { int key = arr[i];//待插入的元素 int j = i - 1; while (j >= 0 && arr[j] > key)

2017-07-23 16:47:14 222

原创 【每日算法】快速排序

思路:partitionvoid quicksort(int arr[], int length, int l, int r){ if (l == r) return; int p = partition(arr, length, l, r); if (p > l) quicksort(arr, length, l, p - 1); if (p < r) quicksort(

2017-07-23 16:18:50 239

转载 C/C++面试常见的几个库函数详解(strcpy,memcpy,memset,atoi...)

C/C++面试常见的几个库函数详解(strcpy,memcpy,memset,atoi...)标签: strcpy面试memcpymemsetatoi2016-03-04 14:44 1629人阅读 评论(4) 收藏 举报 分类:C/C++(53) 版权声明:本文为博主原创文章,转载http://blog.csdn.net/jiange_zh

2017-07-23 15:59:27 405

原创 C++模板、面向对象内容补充

C++模板如何实现模板是一种对类型进行参数化的工具,通常有两种形式:函数模板和类模板;函数模板针对仅参数类型不同的函数;类模板针对仅数据成员和成员函数类型不同的类。使用模板的目的就是能够让程序员编写与类型无关的代码。模板的声明或定义只能在全局,命名空间或类范围内进行。即不能在局部范围,函数内进行,比如不能在main函数中声明或定义一个模板。(1)函数模板:template void

2017-07-23 15:49:57 188

原创 +操作符重载具体定义

操作符重载的实现方式有两种,即通过“友元函数”或者“类成员函数”。(friend)返回类型 operator 操作符(形参表)利用友元函数重载二元操作符”-“时,形式参数是两个,而利用类成员函数时,形式参数却只有一个。这时因为类成员函数中存在this指针,这相当于一个参数,所以类成员实现操作符重载需要的形式参数比原来少一个。也正是因为这个原因,友元函数实现的操作符重载是有限制的,比如:

2017-07-23 15:49:11 521

原创 C++强制类型转换

1、C++中有哪些类型转换(1)static_cast:类似于C风格的强制转换。无条件转换,静态类型转换。主要用于a.转换继承类的对象为基类对象b.基本数据类型转换。enum, struct, int, char, float等。c.把空指针转换成目标类型的空指针。d.把任何类型的表达式转换成void类型。因为这种转换一般会更改变量的内部表达方式,所以应用于指针类型转换没有

2017-07-23 15:48:11 206

原创 【刷题剑指offer】字符串的排列

题目:输入一个字符串,打印出该字符中字符的所有排列。例如输入字符串abc,则打印出由字符a\b\c所能排列出来的所有字符串abc\acb\bac\bca\cab\cba思路:递归实现。分为两步:1、首先求出所有可能出现在第一个位置的字符,即把第一个字符和后面所有字符交换。2、固定第一个字符,求后面所有字符的排列。那么后面的字符也可以分为两部分,第一个字符和后面的所有字符,我们重复1、2

2017-07-18 20:51:47 152

原创 【刷题剑指offer】两个链表的第一个公共节点

思路:先统计出两个链表的长度M和N,然后让长链表先走M-N步,然后一起走,每步都比较两个链表的节点是否相同,如果相同那么跳出循环,返回第一个公共节点代码:struct ListNode{ int val; ListNode* next;};int countLength(ListNode*phead){ unsigned int len = 0; ListNOde*pNode

2017-07-18 20:30:29 226

原创 【刷题剑指offer】把数组排成最小的数

题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323.思路:1、全排列后排序取出最小,复杂度太高了2、利用String类,先将整数数组转为字符串数组,然后字符串数组进行排序,最后依次输出字符串数组即可。这里注意的是字符串的比较函数需要重新定义,不是比较a和b,而是比

2017-07-18 17:50:42 143

原创 【刷题】从1到n整数中1出现的次数

题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11,12共5个。思路:1、从1到n逐个数字计算1出现的次数。直观但不高效2、考虑将n的十进制的每一位单独拿出讨论,每一位的值记为weight。1) 个位从1到n,每增加1,weight就会加1,当weight加到9时,再加1又会回到0重新

2017-07-18 16:30:18 314

原创 【刷题剑指offer】数组中连续子数组的最大和

题目:输入一个整数型数组,数组中有正数也有负数。数组中一个或连续的多个整数组成一个子数组,求所有子数组中和最大为多少。思路:如果当前和为负数,那么把当前和重置为下一个整数,如果当前和为整数,那么当前和加上下一个整数,设置一个变量保存最大和,每次比较都要更新最大和。和动态规划思路相似。代码:int Findmax(int *data, int length){ if (data ==

2017-07-17 17:31:20 134

空空如也

空空如也

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

TA关注的人

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