摘要:
我们自己每天使用的电脑能同时运行多个应用程序,没有感觉到卡顿,电脑为每个应用程序的事件分配了一个优先级,移动端的手机也是,通常不管我们是在看电影,发短信只要有电话,电话绝对是优先级最高的。这个时候我们需要一种合理的数据结构删除最大元素和插入元素,我们可以称之为优先队列。实现这种优先队列最合适的数据结... 阅读全文
摘要:
快速排序应该是应用最广泛的算法,流行的原因主要是因为实现简单,适用于不同的输入数据且在一般应用中比其他算法都快的多,其实跟上篇文章中的归并排序差不多类似,主要是通过分治思想,将数组不断的切割,最后求解。不过两者不同的是归并排序是在递归之后进行比较,也就是说递归之前左右两边的数据是无序的,快速排序是在... 阅读全文
摘要:
归并排序是建立在归并操作上的一种有效的排序算法,算法主要采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序的算法复杂度为O(N*logN),需要的额外的空间跟数组的长度N有关系,实现归并排序最简单的方法是将两个数组重新整合到第三个数组中。通常对于一个数组我们对前半部分进 阅读全文
摘要:
滑动手势也算是iOS中交互中很重要的一部分,上下左右滑动,UISwipeGestureRecognizer可以很轻松的解决这个问题,没什么难度直接看代码吧: UISwipeGestureRecognizer *upSwipeGestureRecognizer=[[UISwipeGesture... 阅读全文
摘要:
希尔排序实际上是插入排序的一种,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。时间复杂度无法准确的估计,希尔排序的基本逻辑记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个数组恰被分成一组,算法便终止。-(... 阅读全文
摘要:
手势在iOS开发中是一个比较常用的功能,不过相对来说大家用的比较少,经常刷网易新闻,上次用了一下捏合手势才发现可以调整字体大小。昨天看到一个介绍摇一摇这个功能的,没看到之前一直都觉得摇一摇是微信的专有的,昨天测试了一下知乎,感觉像发现了一个新大陆,随便截了图,效果如下:扯的有点远了,很多应用的很多功... 阅读全文
摘要:
插入排序的基本逻辑就是将最小的元素移动到左边,左边的数组是有序的,右边的数组基本上不需要动,插入排序运行的时间很大情况取决于输入元素的初始顺序,对于一个很大的且其中的元素已经有序的数组进行排序会比随机顺序的数组或者逆序的数组快很多。插入排序对部分有序的数组是非常有效的,数组中的每个元素都离最终的位置... 阅读全文
摘要:
关于UILabel和UIButton有的时候需要添加下划线,一般有两种方式通过默认的NSMutableAttributedString设置,第二种就是在drawRect中画一条下划线,本文就简单的选择第一种,第二种有兴趣的可以自己研究一下。UILabel设置下划线: UILabel *labe... 阅读全文
摘要:
选择排序(Selection sort)是一种常见的排序算法,算法实现的逻辑每一次从待排序的数组中选出最小(或最大)的一个元素,存放在序列的第一个位置,然后生鲜的元素中选择第二小(或者第二大)的元素放在第二个位置,以此类推,将整个数组排序成功。对于一个长度为N的数组,选择排序大概需要N^2/2的比较... 阅读全文
摘要:
动态连通性直接听起来会稍微绕口一点,简单的说就是输入一列整数对,其中每个整数都表示某种类型的对象,假设输入的的整数对是p和q,我们可以理解p和q是相连的,假设相连是一种等价关系,一般具有三种特性自反性,对称性,传递性,根据上面的特性,如果整数对不存在某种等价关系,那么直接输出,如果存在就不输出。简单... 阅读全文
摘要:
字符串反正工作中有的时候会遇到,其实跟之前的整数逆序输出是一个道理,当然实现的方法的有很多,有的人写的有七种,能实现就好,就常用的实现了两种,凑合着看下吧:Reverse.h@interface Reverse : NSObject-(void)reverse;-(NSString *)revers... 阅读全文
摘要:
注意这里是整数,浮点数需要额外的操作,实现大整数的加减,三个栈就OK了,两个运算整数栈,一个结果栈,基本的逻辑的就是利用栈的先入后出的特点将高位push到栈底,低位push到栈顶,之后两个栈pop出来之后push到结果栈,结果栈pop出来就是我们想要的结果。Stack.h:@interface St... 阅读全文
摘要:
如果是才进入公司进行开发的iOS程序猿来说人难免会对苹果的证书、配置文件,尤其有的需要重头开始的公司来说,最简单的来说真机调试是免不了和这些东西打交道的,有的时候赶时间做完了可能心里也犯嘀咕,本文根据个人经验对Certificates、Identifiers和Profiles做下简单的介绍,不过默认... 阅读全文
摘要:
队列和栈是最常用的数据结构,跟栈不同的是栈是先进后出,队列是先进先出,生活中简单的队列的例子比如说排队买票,排队等公交,具体的原理可以参考网上,基本上大同小异,本文简单的实现一下队列的入列,出列和删除的操作,跟栈一样,队列是通过Node关联操作,具体实现如下:Node定义:@interface No... 阅读全文