自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

轻飘飞扬

认真关注一件事很难~所以你不成功!

  • 博客(15)
  • 资源 (20)
  • 收藏
  • 关注

原创 数据结构与算法学习--排序总结

排序算法已经学习完了,但是在项目开发过程中如果去选择一个高效的排序算法;下面是对前面几种算法的总结。如何实现一个通用的、高效率的排序函数线性排序算法(计数、桶、计数排序)的时间复杂度比较低,但是适用的场景也比较特殊。如果针对小规模的数据进行排序,可以选择时间复杂度0(n^2)的算法;如果针对大规模的排序,时间复杂度0(nlogn)的算法更加高效。所以为了兼顾任意规模数据的排序,一般都会首选时...

2018-10-31 16:25:50 643

原创 数据结构与算法学习--排序(桶排序,计数排序,基数排序)

基数排序和计数排序可以参照链接桶排序:桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将阵列分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的阵列内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是 比较排序,他不受到 O(n log n) 下限...

2018-10-30 22:31:11 613

原创 数据结构与算法学习--排序(归并排序,快排序)

1、归并排序归并排序使用时分治思想,就是将大问题分解成子问题,一般都是通过递归来实现。下面是归并排序的代码实现。void merge_sort(int a[],int left,int right){ int middle = 0; /*递归结束条件*/ if(left >= right) { return; } middle = (left + rig...

2018-10-29 11:29:23 418

原创 数据结构与算法学习--排序(冒泡排序,插入排序,选择排序)

排序是最基本的算法,在项目开发中经常遇到,也是面试环节中考察最多的。1、冒泡、插入、选择三种排序的比较及代码实现“有序度”和“逆序度”:对于一个不完全有序的数组,如4,5,6,3,2,1,有序元素对为3个(4,5),(4,6),(5,6),有序度为3,逆序度为12;对于一个完全有序的数组,如1,2,3,4,5,6,有序度就是n*(n-1)/2,也就是15,称作满有序度;逆序度=满有序度-有序...

2018-10-28 11:42:11 917

原创 简单的线程池的实现及多线程面试题

第一题:线程的基本概念、线程的基本状态及状态之间的关系?线程,有时称为轻量级进程,是CPU使用的基本单元;它由线程ID、程序计数器、寄存器集合和堆栈组成。它与属于同一进程的其他线程共享其代码段、数据段和其他操作系统资源(如打开文件和信号)。线程有四种状态:新生状态、可运行状态、被阻塞状态、死亡状态。状态之间的转换如下图所示:第二题:线程与进程的区别?1、 线程是进程的一部分,所以线程有的时...

2018-10-27 00:43:49 2214

原创 数据结构与算法学习--递归

今天简单了解一下递归,递归对我来说还是比较难理解的一种算法;关键因素是如何找到递推的公式。下面就简单的来了解一下满足递归的条件,及递归的弊端,递归的关键因素。递归的弊端:1、堆栈溢出问题函数调用都会讲临时数据变量进行压栈处理,等函数调用结束才出栈;如果递归调用深度太大,就会导致栈溢出。linux系统栈的大小一般是1K大小,可以在代码中增加判断,调用深度大于1K时,直接返回。只是简单的避免...

2018-10-17 23:13:34 494

原创 数据结构与算法学习--队列

今天我们开始学习队列的;队列在实际项目开发中使用的很广泛,比如我们经常说的线程池,在处理大部分资源不足的情况下,都会考虑使用队列来缓存请求数据。1、阻塞队列阻塞队列时一种典型的“生产者–消费者”模型,就在队列的基础上增加的阻塞的功能(其实就是一种同步机制)。当队列为空时,出队阻塞;当队列满时,入队阻塞。还有下面多消费者–单生产者模式。上面的就是我们线程池的基本架构,在多个线程同时操作队...

2018-10-15 23:40:07 397

转载 pthread_sigmask 控制线程的信号掩码

实例1:屏蔽信号SIGINT/* 示例一:屏蔽信号SIGINT 来源:http://www.leoox.com/?p=321 编译:gcc pthread_sigmask1.c -lpthread 运行后,你发现你按下CTRL+C(触发SIGINT信号),这个程序根本停不下来。因为SIGINT信号已经如我们所愿被屏蔽掉了。*/ #include <pthread.h...

2018-10-14 20:51:45 6915 1

原创 数据结构与算法学习--栈

1、顺序栈的实现:/************************************************************************* > File Name: arrayStack.h > Author: jinshaohui > Mail: jinshaohui789@163.com > Time: 18-10-..

2018-10-13 16:26:51 484

原创 linux使用back trace打印函数调用栈,捕捉段错误

在大型项目开发过程中,经常遇到一些段错误问题或者查询是哪个函数调用了当前函数。通过代码排查手段太费时了,下面利用函数库打印出段错误时刻的函数调用栈,很容易找到代码异常之处。在glibc头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈int backtrace(void **buffer,int size) 该函数用于获取当前线程的调用堆栈,获取的信息将会被存放...

2018-10-13 12:52:47 3970

转载 select、poll、epoll之间的区别总结

select、poll、epoll都是IO多路复用的机制,先是监听多个文件描述符FD,一旦某个FD就绪,就可以进行相应的读写操作。但是select、poll、epoll本质都是同步I/O,他们都需要在读写事件就绪之后自己负责读写,即这个读写过程是阻塞的1 select/pollselect缺点:【1】每次调用select都需要把fd从用户态拷贝到内核态,开销比较大【2】每次都需要在内核遍历...

2018-10-13 11:46:17 766

原创 数据结构与算法学习--链表二

单链表反转链表中环的检测两个有序的链表合并/************************************************************************* > File Name: lisklist.c > Author: jinshaohui > Mail: jinshaohui789@163.com > Time...

2018-10-13 01:04:49 346

原创 数据结构与算法学习:链表

链表基本介绍常用缓存策略

2018-10-11 00:19:54 238

原创 数据结构与算法学习:数组

今天我们开始学习最基本,最简单的数据类型:数组;它是一种线性数据结构。具有一组连续的内存空间来存储相同数据类型的结构。

2018-10-07 20:58:45 342

原创 数据结构及算法学习:复杂度分析

复杂度学习目的及相关术语时间复杂度分析

2018-10-05 11:21:14 395

redis设计与实现 第二版 高清 带标签 PDF文档.zip

本书详细描述了redis的功能点和内部实现,如果希望了解redis功能和深入研究redis实现细节,本书是一个很好的参考和借鉴,同时加入了目录结构,便于翻阅。 一共2个版本的PDF,都带有目录,可以选择自己舒服的版本阅读。

2019-07-22

强烈推荐 网络之路H3C数通技术23期汇总.zip

网络之路H3C数通技术23期汇总 QOS、组播、IPsec、vlan、HA、NAT等等详细基础知识

2019-07-13

linux VIM 配置文件

vimrc文件拷贝到用户家目录和root家目录下更名为.vimrc 两个TXT文件拷贝到/usr/share/vim/vim73/doc 目录下 两个VIM文件拷贝到/usr/share/vim/vim73/plugin目录下

2014-12-02

USBIP协议翻译

内核模块USBIP协议的linux侧,相关描述,是内核帮助文档的翻译。

2014-11-21

BMP图片编码x264文件

使用FFMpeg可以很方便的对音视频进行编码,并且写文件。 下面的代码是将5幅1280*720大小的图片进行编码,并且写到文件中

2014-11-15

VLC0.94版本

VLC 0.94版本windows安装程序,配合live555实现网页播放功能!

2014-11-11

live555项目Vs2010编译环境搭建及源码

Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目 它实现了对标准流媒体传输协议如RTP RTCP RTSP SIP等的支持 Live555实现了对多种音视频编码格式的音视频数据的流化 接收和处理等支持 包括MPEG H 263+ DV JPEG视频和多种音频编码 同时由于良好的设计 Live555非常容易扩展对其他格式的支持 目前 Live555已经被用于多款播放器的流媒体播放功能的实现 如VLC VideoLan MPlayer   该项目的源代码包括四个基本的库 各种测试代码以及IVE555 Media Server 四个基本的库分别是UsageEnvironment&TaskScheduler groupsock liveMedia BasicUsageEnvironment ">Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目 它实现了对标准流媒体传输协议如RTP RTCP RTSP SIP等的支持 Live555实现了对多种音视频编码格式的音视频数据的流化 接收和处理等支持 包括MPEG H 263+ DV JPEG视 [更多]

2014-09-06

ubuntu apt-get 软件源局域网或公网设置

打包的这些只是很少的一部分,比如,现在你要在客户机中#apt-get install vim那肯定是安装不了的,因为主机中根本就没有,如果想要安装怎么办,就在主机进行操作之前把软件给安装好apt-get install vim apt-get install ssh。这样就可以了,或者你可以把官方的软件源全部下载下来,那样体积会非常大。所以我只安装我自己需要的。

2014-06-25

linux C 内存池实现

C语言实现的内存池!j利用默认的内存管理函数new/delete或malloc/free在堆上分配和释放内存会有一些额外的开销。

2014-05-16

XSTUNT 源码 linux 环境及相应API说明

XSTUNT 源码 linux 环境及相应API说明 基于TCP的 NAT穿透技术源码!

2014-05-05

ubuntu dpkg制作安装包

介绍在unbuntu系统下如何制作deb安装包程序!

2014-03-31

基于TCP,UDP NAT穿透资料附源码

基于TCP,UDP NAT穿透资料附源码

2014-01-12

易宝支付PHP代码

商家正式运行时,必须把自己的服务器部署在公网上的服务器上,这样支付成功后易宝支付的服务器才能支付结果及时返回给商家 为了商家技术工程师开发的方便,如果测试服务器在工程师自己的服务器上,可以把URL设定为localhost的方式,浏览器可以正式返回。

2013-09-07

XPath基础教程

XPath的设计的核心思想,可以通过xpath迅速简介的定位到你希望查找的节点。主要目的是描述节点相对其他节点的位置,可以取得所有符合条件的节点,成为[位置路径]。

2013-08-31

PJSIP 开源代码及文档

PJSIP是一个开源的SIP协议库,它实现了SIP、SDP、RTP、STUN、TURN和ICE。PJSIP作为基于SIP的一个多媒体通信框架提供了非常清晰的API,以及NAT穿越的功能。PJSIP具有非常好的移植性,几乎支持现今所有系统:从桌面系统、嵌入式系统到智能手机。

2013-01-30

华清嵌入式培训编写代码程序

本人在华清嵌入式培训机构4个月时间,所编写的所有代码,里面有各个文件夹,很方便大家阅读~

2012-12-17

jeffy-vim 很强的一个vim插件及配置

linux vi编辑器的自动补齐功能,能让你长的代码无需记住,自动显示;很多常用的命令,对代码阅读和写很有帮助

2012-11-30

空空如也

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

TA关注的人

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