方法执行顺序 我们在main函数中加了一个C++方法和一个普通的打印方法,在ViewController中重写了load方法,思考5秒钟,请问它们的打印先后顺序是什么? + ...
方法执行顺序 我们在main函数中加了一个C++方法和一个普通的打印方法,在ViewController中重写了load方法,思考5秒钟,请问它们的打印先后顺序是什么? + ...
前言 在之前的文章dyld加载流程[https://www.jianshu.com/p/f8b7836e5fc3],我们已经探究了dyld的加载流程,那么接下来我们就对dyl...
前言 在之前的文章dyld与objc的关联分析[https://www.jianshu.com/p/86fcb053c721],我们分析了_objc_init方法中的各个初始...
前言 前面的两篇文章我们已经探索了消息的快速查找和慢速查找的流程。 objc_msgSend 流程之缓存查找[https://www.jianshu.com/p/abaa3c...
学习了这么多的链表结构和链表原理,是时候做一些练习题了,废话不多说,直接上代码。 题目1:将2个递增的有序链表合并为一个有序链表; 要求结果链表仍然使用两个链表的存储空间,不...
题目5:设将n(n>1)个整数存放到一维数组R中, 试设计一个在时间和空间两方面都尽可能高效的算法;将R中保存的序列循环左移p个位置(0<p<n)个位置, 即将R中的数据由(...
算法,是我们程序员纵向发展所必须攀登的一座大山,下面我们做一些算法题,难度逐渐递增。当然我们碰见解不开的题时千万不要气馁,有时候一天做出一道题,都是很不容易的。下面我将自己的...
今天我们来用几种算法分别解决字符串匹配的问题,并学习其中的算法思想。 题目:主串S:"abcacabdc",模式串T:"abd",请找出模式串在主串中第一次出现的位置。 提示...
作者:Rabin & Karp,故称为RK算法,该算法有几点值得学习的地方: ①.把字符串比较问题,转换为了Hash值比较问题。②.利用前一个Hash值计算结果,辅助计算下一...
1.树的概念 节点:节点包括一个数据元素及若干指向其他子树的分支。 节点的度:节点所拥有子树的个数称为节点的度。 叶节点:度为0的节点成为叶结点,叶结点也称为终端节点。 分支...
1.概念 对于n个结点的二叉树,那么一共有2n个链域,其中有n-1一个链域被使用而空的链域有2n-(n-1)=n+1个链域,利用这些空链域存放在某种遍历次序下该结点的前驱结点...
哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依...
图的定义 图(Graph)是由顶点的有穷非空集合和顶点之间的集合组成,通常表示为G[V, E],其中G表示一个图,V是图G的顶点集合,E是图G中边的集合。 图的存储 1.邻接...
定义 查找:就是根据给定的某个值,在查找表中确定一个其关键字等于给定的数据元素。 查找表:是同一类数据元素(记录)构成的集合。 关键字(Key):是数据元素中某个数据项的值,...
前言 在上篇[https://www.jianshu.com/p/abaa3c3f06e9]文章中,我们结合源码分析了方法的快速查找(缓存查找),在最后,我们分析到如果缓存查...
前言 在之前的文章中,我们剖析了类的结构,今天我们来分析一下类结构中一个非常重要的结构体cache_t,从名字上我们可以大致可以猜出,cache_t是用来做缓存的,那么它究竟...
前言 有一定经验的iOS开发者大家都知道OC方法调用的本质就是消息的发送,那么发送消息后底层到底是如何查找到消息的呢?今天我们结合源码分析一下(本次探究源码基于objc781...
通过之前几篇文章的学习,我们已经对类做了很多的探索了,现在我们看两道面试题,巩固一下。 【面试题】类方法归属分析 我们知道实例方法 存储在类中,类方法存储在元类中,我们下面通...
二叉排序树 二叉排序树有称之为二叉查找树。它或是一颗空树,或是一颗具有下面性质的二叉树: 若它的左子树不为空,则左子树上所有的结点的值均小于它的根节点的值;若它的右子树不为空...
这是一道阿里的面试题假设目前优N个顶点,每个顶点链接的路径不一样,请你设计一个算法,快速找出能覆盖所以顶点的路径。(注意:该题并不是求两点间的最短路径,而是设计一个路线,能够...