logo头像
Snippet 博客主题

Runtime常用API

Runtime常用API 获取和添加类的,属性,方法,实例变量,协议 12class_copy,ivar,property,method,protocolclass_add 设置关联对象 12objc_setAssociatedOb...

字符串

RK算法 整数太大超过范围,可以允许冲突.冲突的解决,hash值相等的话,再比较子串. 冲突太多,时间复杂度退化到O(n) BF RK BM KMP 单模式串Trie树 AC自动机 多模式串

排序

种类 时间复杂度 是否基于比较 比较,冒泡,选择 \(n^2\) 是 快排,归并 \(nlogn\) 是 桶排序,基数排序 \(n\) 否 评价排序算法的几个角度 执行效率 比较交换的次数 时间复杂...

散列表

散列表是用数组支持按照下表随机访问数据的特性,源于数组,借助散列函数扩展数组的属性. 散列函数的基本要求 散列函数计算得到的散列值是一个非负整数; 如果 key1 = key2,那 hash(key1) == hash(key2...

算法总结

链表 双向链表的删除操作 删除的两种情况:1.删除节点(节点的值等于给定值)2.删除给定指针指向的节点 第一种情况,单链表还是双向链表都需要遍历,删除的时间复杂度是O(1),遍历的复杂度是O(n),因此结果还是O(n)第二种情况,单...

线性表

队列循环队列,阻塞队列,并发队列 基于数组的队列 问题:队满时,左边还有空间怎么做 解决: 入队时,如果队满,将head和tail之间搬到0-head之间 循环队列 难点:确定队满和队空的条件 非循环的队列,数组实现 ...

RunLoop

简述RunLoop是用来管理消息与事件的一个类似do-while循环,并可以让线程在没有处理消息时休眠以避免资源占用、在有消息到来时立刻被唤醒。它可以使程序一直运行并接受用户输入 RunLoop和子线程的关系 子线程在创建完,r...