算法系列
算法四习题详解
简介
算法(第4版)》是Sedgewick之巨著,与高德纳TAOCP一脉相承,是算法领域经典的参考书,涵盖所有程序员必须掌握的50种算法,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。
本专栏旨在讲解《算法(第4版)》的所有习题答案以及详细分析。
适宜人群
计算机专业的在读学生
有一定经验的软件开发人员
有志于转向算法、大数据等岗位软件工程师
《算法(第4版)》目录
第1章 基础
1.1 基础编程模型
1.2 数据抽象
1.3 背包、队列和栈
1.4 算法分析
1.5 案例研究:union-find算法
第2章 排序
2.1 初级排序算法
2.2 归并排序
2.3 快速排序
2.4 优先队列
2.5 应用
第3章 查找
3.1 符号表
3.2 二叉查找树
3.3 平衡查找树
3.4 散列表
3.5 应用
第4章 图
4.1 无向图
4.2 有向图
4.3 最小生成树
4.4 最短路径
第5章 字符串
5.1 字符串排序
5.2 单词查找树
5.3 子字符串查找
5.4 正则表达式
第6章 背景
作者介绍
kyson老师,饿了么资深iOS工程师。为了方便算法同学交流,笔者建了一个算法交流群,需要的请微信我:zhujinhui207407,加微信群请备注【算法交流】
iOS 底层知识系列
iOS开发之深入理解 Runtime
关于Runtime:
Objective-C 扩展了 C 语言,并加入了面向对象特性和 Smalltalk 式的消息传递机制。而这个扩展的核心是一个用 C 和 编译语言 写的 Runtime 库。它是 Objective-C 面向对象和动态机制的基石。
像 Objective-C 这种高级编程语言想要成为可执行文件需要先编译为汇编语言再汇编为机器语言,机器语言也是计算机能够识别的唯一语言,但是 Objective-C 并不能直接编译为汇编语言,而是要先转写为纯 C 语言再进行编译和汇编的操作,从 OC 到 C 语言的过渡就是由 runtime 来实现的。然而我们使用 OC 进行面向对象开发,而 C 语言更多的是面向过程开发,这就需要将面向对象的类转变为面向过程的结构体。
可以说对 runtime 的了解深度决定了一位 iOS 开发者的技术高度。目前对 iOS 技术人员的面试也普遍会通过 Runtime 来区分其属于高级,中级还是初级 iOS 开发者。
本系列教程作者拥有 8 年 iOS 开发经验,经历过 iOS 开发的各个阶段,对 iOS 识了解比较深入,对 runtime 知识的分析也尽量做到鞭辟入里。
大纲:
- Runtime 源码下载以及调试环境搭建
- 对象声明周期,以及各个关键字作用
- AutoreleasePool 实现原理
- 引用计数实现原理
- c,c++ 知识
- 多线程,锁等
- 消息转发机制
- Mach-O文件分析
- Hash 算法等算法知识讲解
- iOS 中堆内存分配讲解 ( libmalloc )
- Clang 编译原理
- 其他
适合人群
本系列教程适合于有一定经验的 iOS 开发人员。由于 Runtime 源码涉及到 mach-o 文件以及大量的 C 语言高级用法,较少的汇编,因此本系列教程也可以作为APP逆向的一个入门教材。
作者介绍:
kyson老师,饿了么资深 iOS 开发工程师。为了方便 iOS 同学交流,笔者建了一个 iOS 交流群,需要的请微信我:zhujinhui207407,加微信群请备注【iOS交流】
Tips:
本专栏随着内容的不断完善,价格也会随之阶段性地提高,已经订阅的读者不受影响,如有需要请务必尽早上车。
iOS应用系列
大厂这么做 iOS
简介
进入大厂是大部分 iOS 开发人员的梦想,大厂拥有更加完善的开发团队,更加规范的开发流程,有数以百万甚至亿级别的用户,对个人能力提升是显而易见的。
又到一年黄金求职季,越来越多的开发者计划通过换工作来提升自己或者谋求一份自己满意的工作,大厂的薪水毋庸置疑是拥有更大的吸引力的。那么了解大厂移动团队的开发模式,熟悉大厂面试人员的考核标准无疑对面试者拥有至关重要的参考价值。
大厂的 APP 拥有动辄数以亿计的用户量,成百上千个页面,其组织形式又和普通 APP 有什么区别,这就是本专栏要带给你的。
本专栏将通过从 0 到 1 的实现一个真实的 APP 这种方式来告诉大家大厂 APP 的代码组织方式,并且这个 APP 即将被作者送上 APP Store。
为了帮助读者快速的了解本专栏涉及的知识点,这里大致列一下大纲供大家参考:
- Pod 的一系列高级用法
- MVVM 开发模式在大厂 APP 的使用
- 各种组件化实现方式在 APP 不同场景中的使用
- QRCode、网络、定位、人工智能、HotFix等库实现的基本思路
- APP 监控系统、稳定性建设、日志系统、线上配置系统、Flutter集成等实践
不是什么
本专栏不是“ 24 天带你入门 iOS”之类的入门 iOS 教程,也不是“快速搭建 APP 并上架 APP Store ”的速成类演示。小专栏中以开发一款 APP 为基础的目的,是为了演示大厂 APP 在组织架构上的一些实践。
适合人群
本系列教程适合于有一定经验的 iOS 开发人员,以及想要晋级为高级 iOS 开发工程师的 iOS 开发者。
作者介绍:
kyson老师,饿了么资深 iOS 开发工程师。为了方便 iOS 同学交流,笔者建了一个 iOS 交流群,需要的请微信我:zhujinhui207407,加微信群请备注【iOS交流】
Tips:
本专栏随着内容的不断完善,价格也会随之阶段性地提升。已经订阅的读者不受影响,如有需要请务必尽早上车。