自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (12)
  • 收藏
  • 关注

原创 Swift extension详解

OC_category和Swift extension在 Objective-C 中,我们有 .h 文件和 .m 文件。同时管理这两个文件(以及在工程中有双倍的文件)是一件很麻烦的事情,好在我们只要快速浏览 .h 文件就可以知道这个类对外暴露的 API,而内部的信息则被保存在 .m 文件中。在 Swift 中,我们只有一个文件。 为了一眼就看出一个 Swift 类的公开方法(可以被外部访问的方法)

2017-06-21 19:29:31 983

原创 iOS base64 编码详解

iOS base64 编码详解iOS中将NSData转为base64编码时有NSDataBase64EncodingOptionsNSDataBase64EncodingOptions有四个选项/**************** Base 64 Options ****************/typedef NS_OPTIONS(NSUInteger, NSDataBase64

2017-06-21 19:28:34 2714 1

翻译 swift中extension的应用

http://blog.ios-developers.io/view-controller-extensions/Say you are trying to make an iOS app that uses a UITableView. Along with the code that provides custom functionality, your view cont

2017-06-20 18:37:45 496

原创 iOS 内购详解

iOS App内购 SKProductsRequest Delegate 不调用 原因及解决办法之前代码是这样写的: //此时request没有强指针指向它 这样会导致SKProductsRequest Delegate不调用 但不是每次都不调用,只是偶尔出现不调用的情况 这个问题不好发现 SKProductsRequest *request = [[SKProductsRequest

2017-06-17 19:06:13 979

原创 信号量和互斥锁详解 非MarkDown版

[参考链接1](http://blog.chinaunix.net/uid-24612247-id-2305050.html)[参考链接2](http://blog.csdn.net/tietao/article/details/7367827)[参考链接3](http://www.cnblogs.com/diyingyun/archive/2011/12/04/2275229.html)

2017-06-15 10:21:22 409

原创 信号量和互斥锁详解 MarkDown版

信号量和互斥锁详解 参考链接1 参考链接2 参考链接3 参考链接4 信号量强调的是线程(或进程)间的同步:“信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在sem_wait的时候,就阻塞在那里)。当信号量为单值信号量是,也可以完成一个资源的互斥访问。 互斥锁(又名互斥量)强调的是资源的访问互斥:互斥锁是用在多线程多任务互斥的,一个

2017-06-14 10:42:10 487

原创 线程条件变量pthread_cond_t和线程条件锁详解

线程条件变量pthread_cond_t和线程条件锁详解条件变量常与互斥锁同时使用,达到线程同步的目的:条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足。APUE上,关于条件锁。其中有2条总结:1.使用条件锁前必须先锁住对应的互斥锁。2.条件锁进入阻塞(pthread_cond_wait)时自动解开对应互斥锁,而一旦跳出阻塞立即再次取得互斥锁,而这两个操作都是原子操作。示例代

2017-06-14 10:08:45 1080

原创 找到数组中第几个最小的数据

找到数组中第几个最小的数据 将经典的快速排序算法做简单修改即可示例代码如下:void testFindSpecificMin(){ int arr[] = {2, 4, 3, 9, 6, 5, 7, 0, 2, 1}; //int arr[] = {4, 2, 9}; //int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8}; int posi

2017-06-13 10:53:45 1772

原创 经典的快速排序算法

经典的快速排序算法 其中将一个数组按照枢纽元的大小将其分成左右两个部分的算法成为快速算法这个写个避免了判断相等的情况 当遇到元素与枢纽元相等时停止 目的是为了产生两个相对平衡的左右数组void testQuickSort(){ int arr[] = {2, 4, 3, 9, 6, 5, 7, 0, 2, 1}; //int arr[] = {0, 1, 2, 3, 4, 5, 6

2017-06-13 10:52:19 329

原创 查找大于等于左侧所有数小于等于右侧所有数

在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数。实现void test(){ //int arr[] = {2, 5, 3, 6, 6, 9, 12, 7}; int arr[] = {2, 4, 3, 9, 6, 5, 7}; //int arr[] = { 2 3 3 5 5 5 7}; //int arr[] = {1,

2017-06-13 10:50:10 1233

原创 斐波那契数列的实现

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、

2017-06-13 10:47:42 361

原创 MarkDown如何输入数学公式

MarkDown如何输入数学公式在MarkDown中输入如下下代码在使用时要去掉 \ 这个符号 加\符号是为了让markDown原样显示,不被解析成对应的markdown语法\ <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLor

2017-06-07 10:08:32 1180

原创 常见的快速算法

常见的快速算法/** 最小公约数 */int testalgorithm1(int a, int b) { int m = a; while (m > 0) { m = a%b; a = b; b = m; } return a;}/** 2分法求平方根 */float sqrtCalculate(int n){

2017-06-06 14:57:42 474

原创 求幂运算的不同发法之间的时间复杂度比较

求幂运算的不同发法之间的时间复杂度比较求幂运算有多种方法其中每种方法时间复杂度不尽相同详解如下:void test(){ long long result = calculatePower(2, 4); printf("the result is %lld\n", result);}long long calculatePower(int x, int n){#if 0 - 此方

2017-06-06 14:53:51 1922 1

原创 递归转化为循环

//将递归转化为for循环看例子将递归转为for循环需要求解递归关系,知道递归关系后就可以使用循环来实现。 如下示例 求解后知//f(n) = n * f(n - 1);代码详解如下:/** 求阶乘 */int factorial(int n){ static int calculateCount = 0; printf("calculate count is %d\n", cal

2017-06-06 14:42:16 1921

原创 最大子序列和详解

最大子序列和详解在求解最大子序列和时可以使用多种不同的方法 其中对于分治思想:将一个n规模的问题分为2个n/2规模的问题,再将问题的解做简单合并。其中n/2规模的问题可以继续分开处理。对于最大子序列和最大值存在3种情况1在左边2在右边3跨越中间,如果跨越中间将左侧最左部分一直相加到右侧最右部分即可判断。 详细代码如下:void test(){ // int array[] = {4 ,

2017-06-06 14:25:30 647

原创 素数判断详解

素数判断详解参考文章:点击打开链接对于判断素数大概有两类方法1:试除法2:筛选法还有一个米勒-拉宾检验方法此处不再展开。试除法:不断地尝试能否整除。比如要判断自然数 x 是否质数,就不断尝试小于 x 且大于1的自然数,只要有一个能整除,则 x 是合数;否则,x 是质数。筛选法:首先,2是公认最小的质数,所以,先把所有2的倍数去掉;然后剩下的那些大于2的数里面,最小的是3,所以3也是质数;然后把所有3

2017-06-06 13:56:26 988

原创 8位字节对齐算法

//8位字节对齐算法void testAlign(){ for (int i = 0; i <= 10; i++) { int align = align8Bit(i); printf("the align is %d\n", align); }}unsigned int align8Bit(unsigned int n){ return

2017-06-06 11:00:15 5041

原创 堆排序详解

堆排序是利用堆的堆序性,对于最小堆而言,最小元素在堆顶,对于一个数组先通过将其建立成一个最小堆 然后一个一个删除其堆顶元素既实现了排序。当堆的顶部最小元素被删除后要对堆做调整使其再次满足堆序性。由于对堆做一次调整最坏时间复杂度为O(logN),堆排序需要对堆做N-1次调整 所以堆排序最坏时间复杂度为O(NlogN),不过其比快排多开辟了一个堆的存储空间。堆排序的详细实现如下:////

2017-06-05 18:23:40 845

原创 数据结构堆详解

数据结构中的堆一般值指的是二叉堆,通常大家说堆如果不是指的内存堆,那就是说的二叉堆,一下内容用堆直接代指二叉堆堆具有两个性质:结构性和堆序性结构性:堆是一颗完全二叉树,因为堆由完全二叉树组成所以堆很有规律,它可以用一个数组来表示而不需要使用指针。对与数组中任一位置i上的元素,其左儿子在位置2*i上 右儿子在2*i + 1上。堆序性:(这里以最小堆为例,既顶部为元素为最小值)是操作被

2017-06-05 18:10:03 1353

原创 链表的实现

链表的实现//List链表typedef int ElementType;typedef struct _node{ ElementType data; struct _node *next;}Node, * NodePointer;typedef struct _list{ Node *header;// int capacity;//总容量//

2017-06-05 17:52:14 310

原创 插入排序与希尔排序详解

插入排序与希尔排序详解参考文章:点击打开链接1、基本思想:希尔排序也成为“缩小增量排序”,其基本原理是,现将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插入排序,待整个待排序列“基本有序”后,最后在对所有元素进行一次直接插入排序。因此,我们要采用跳跃分割的策略:将相距某个“增量”的记录组成一个子序列,这样才能保证在子序列内分别进行直接插入排序后得到的

2017-06-05 16:53:03 488

原创 希尔排序详解

参考文章:点击打开链接1、基本思想:希尔排序也成为“缩小增量排序”,其基本原理是,现将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插入排序,待整个待排序列“基本有序”后,最后在对所有元素进行一次直接插入排序。因此,我们要采用跳跃分割的策略:将相距某个“增量”的记录组成一个子序列,这样才能保证在子序列内分别进行直接插入排序后得到的结果

2017-06-05 16:44:11 552

原创 时间复杂度重要结论

时间复杂度重要的结论: 1:如果T(N) 是一个k次多项式 则T(N) = Θ(N¹²ºv^kv+^kVvv1+1Vvvv2^k) calculateCount calculateCountcalculateCountx=−b±b2−4ac‾‾‾‾‾‾‾‾√2ax=\frac{-b\pm\sqrt{b^2-4ac}}{2a}x=n2x=n^2

2017-06-01 11:09:06 570

spring-framework-2.5.6

spring-2.5.6 jar包,spring-2.5.6源码包,spring-2.5.6文档

2018-01-03

iOS mask 层和 CAShapeLayer层中间挖去一部分

iOS mask 层和 CAShapeLayer层中间挖去一部分的 源码分析

2016-03-07

PaintCode for Mac 破解版 Version 2.1 (21005)

PaintCode for Mac 破解版 Version 2.1 (21005) 破解版可用的,很好用,可以试试,不错的工具。

2015-11-20

Win7资源管理器背景设置 shellstyle

Win7 资源管理 器背景 设置 shellstyle dll 通过使用压缩包内的提供的dll文件,对C:\Windows\Resources\Themes\Aero\Shell\NormalColor 路径下的dll进行替换,可以方便的更改资源管理器的背景颜色

2014-08-15

USB CCID 上位机源码

USB CCID 上位机源码 源码非常详细,有用的可以下载

2014-08-12

USB HID上位机源代码

USB HID上位机源代码 用的是MFC,C++写的,源码非常清晰

2014-08-12

hid descriptor tool USB 描述符生成工具

hid descriptor tool USB 描述符生成工具

2014-07-28

hid usage tables

hid usage tables HID 用途表

2014-07-28

VS2010 代码行虚线对齐工具

VS2010 代码行虚线对齐工具,这个工具很好用,能起到代码虚线对齐的作用不错的

2014-07-24

VS2010 相同单词高亮显示 插件

VS2010 相同单词高亮显示 插件 这个插件不是VisualAssistX,VisualAssistX反应太慢,这个插件绝对好用而且反应超级快,提高编程效率

2014-07-24

企业短信猫源代码

具有收发功能的短信猫源代码,功能齐全,代码很通俗易懂,值得学习。

2013-11-22

空空如也

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

TA关注的人

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