老沙课堂

27 篇文章
5.2K 次阅读
12 人订阅

编程算法

老沙

数据结构与算法(十二) 红黑树

•节点是有颜色的Red/Black•根节点必须是Black•叶子节点必须是Black•红黑树的叶子节点会自动将度为0 或者度为1的节点的度自动补充为2,补充的节...

17420
老沙

据结构与算法(十) AVL树

因为无法改变添加删除顺序(用户操作决定),所以在每次操作之后,让二叉树达到平衡状态。

14520
老沙

数据结构与算法(九)二叉搜索树的删除操作

•前驱节点:中序遍历时的前一个节点•如果左子树存在,从该节点的左子节点的最右的节点。•如果左子树 == null && 父节点!= null 父节点为父节点遍历...

26820
老沙

据结构与算法(八) 二叉树的练习

•设定levelSize初始值为1(只有一个根节点)•当进行while循环的时候 levelsize-- 操作。因为levelSize和每层节点个数相等。所以当...

14630
老沙

数据结构与算法(六) 二叉树遍历

•任意一个节点的值都大于其左子树的值•任意一个节点的值都小于其右子树的值•他的左右子树也是一颗二叉搜索树•二叉搜索树可以大大提高效率(搜索和添加删除时间复杂度都...

17330
老沙

数据结构与算法(五) 队列

•先进先出原则(First In First Out) FIFO•队尾(rear):只能进行入队操作(enQueue)->添加元素•队头(front):只能进行...

11710
老沙

数据结构与算法(四)栈

栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作...

18250
老沙

数据结构与算法(三)链表

•插入操作的时候 如果想在角标1添加,要找到角标1的上一个元素。•边界问题 例如首个元素添加 以及最后一个元素添加

12420
老沙

TaggedPointer

由于test 修饰为nonatomic 所以是线程不安全的。当多条线程同时访问,造成多次release ,所以坏内存访问。

11720
老沙

isa详解(二)cache和散列表

源码中查找 objc_destructinstance 销毁一个实例对象。发现需要进行相关判断。所以如果没有的话。释放更快

13240
老沙

super(二) 以及内存分布

在ViewController 书写以下代码。问是否能编译通过,如果可以输出什么是什么?

14120
老沙

多线程(一) 有关死锁以及串行并发同步异步概念

performSelector: withObject: 底层调用[self msgSend];

15530
老沙

Objective 锁

由于锁是自旋锁,线程不会休眠,所以当低优先级线程先对操作进行Lock造作后,CPU调度高优先级线程造作,由于低优先级别UnLock就调用高优先级线程。高优先级...

19420
老沙

iOS读写安全

给属性添加atomic 可以保证属性的setter和getter原子性操作,也就是保证setter和getter内部是线程同步的

21630
老沙

浅入深出Copy和mutableCopy

由Tagged Pointed 可以知道a b 为Tagged Pointer 对象 想深入了解的的可以看一下我的上一篇文章

19020
老沙

数据结构与算法(一) 简单例子理解时间复杂度和空间复杂度

所以总的时间为1 + n + n + n + n^2 + n^2 + n^2 = 1 +3n +3n^2 由于计算时间复杂度可以省略常数,系数以及低阶 所以这个...

14840
老沙

数据结构与算法(二)数组

在堆中连续开辟的一段空间,每个元素占有相同大小的空间。一经开辟,即固定大小,无法改变长短。

14920
老沙

block内存管理

盏空间的block 不会对外面capture的变量进行强引用 无论weak修饰 还是strong修饰

16910

扫码关注云+社区

领取腾讯云代金券