:iOS面试之道 pdf下载pdf下载

:iOS面试之道百度网盘pdf下载

作者:
简介:本篇提供书籍《:iOS面试之道》百度网盘pdf下载
出版社:万泽惠远图书专营店
出版时间:2018-07
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

基本信息

书名:iOS面试之道

定价:59.00元

作者:故胤道长 唐巧

出版社:电子工业出版社

出版日期:2018-07-01

ISBN:9787121342622

字数:242000

页码:220

版次:1

装帧:平装

开本:16开

商品重量:0.4kg

编辑推荐


适读人群 :如果你是一名iOS开发者,并且正准备跳槽,那么本书是一本不错的复习参考书;如果你没有面试计划,那么本书也可以帮助你对iOS知识进行提纲挈领的整理;如果你是面试官,那么希望本书能为你提供考查应聘者的依据和源泉;对于具有其他背景的软件工程师,若想一窥iOS世界的知识框架,本书也是不错的切入点。

117道以上IT大厂面试题

n

详解iOS大厂技术人员所关注和重视的技术点

n

不仅是面试指南,也是构建iOS知识体系的基本框架

n

在一问一答间,融入作者对问题本质的深刻理解和多年工作经验的沉淀

n

硅谷iOS工程师、资深iOS开发者为你详解硅谷、Google、Facebook、BAT等知名IT大厂面试题!

n


内容提要


《iOS面试之道》是作者将多年的工作经验和积累,结合具体面试内容总结而成的。

n


n

《iOS面试之道》共分为3部分。部分为面试准备,详细介绍求职中遇到的基本问题,作者根据其多年的经验,在面试流程、简历投递、复习准备方面给出了完善的参考意见和建议。第2部分为算法知识。算法几乎是各种水平的程序员都要面对的考查内容。该部分采用Swift语言重新审视了多种数据结构和算法原理,可以说是为iOS开发者量身打造的算法解答。第3部分为iOS专业问答,分为语言工具、系统框架和经验之谈,采用问答的形式来详细介绍。

n


n

如果你是一名iOS开发者,并且正准备跳槽,那么本书是一本不错的复习参考书;如果你没有面试计划,那么本书也可以帮助你对iOS知识进行提纲挈领的整理;如果你是面试官,那么希望本书能为你提供考查应聘者的依据和源泉;对于具有其他背景的软件工程师,若想一窥iOS世界的知识框架,本书也是不错的切入点。

目录


作者介绍


故胤道长
卡内基梅隆大学硕士毕业,常年居住于美国的iOS开发者;先后就职于Uber;GitHub全美前20名的Swift开源作者

唐巧
资深 iOS 开发者;拥有超过10万个微信公众号和微博粉丝,一直努力分享iOS相关知识;
著有《iOS开发进阶》 一书;现任猿辅导公司,小猿搜题产品技术负责人

n


文摘


《iOS面试之道》:
  排序算法是算法中一个比较常见的知识点,主要功能是对一个乱序数组进行排序,为了达到更少的计算量,对一些排序方法进行了命名,其中比较出名的8大排序算法是: 冒泡排序,选择排序,希尔排序,快速排序,归并排序,堆排序,基数排序。
  如果不涉及架构方面,以及多重计算优化的话,算法其实并不常用,当然在很多比较大的公司的面试题中,算法是一个比较重要的考察方面,并且考察的算法主要就是排序算法和二叉树。而在面试排序算法中,主要考察的排序并不是的8大算法,主要分为三个层次: 手写冒泡排序; 了解冒泡、选择、快速排序,并以伪代码形式写出; 除了前面两个层次,需要对剩下的排序算法有了解,并可以简单说出原理。这是面试题中关于考算法的三个等级,一般的公司不强求算法的话都只要求掌握个就行了,而大一些的公司,例如BAT,需要掌握到第二个层次,而第三个层次基本上没有公司会考到,当然不排除有些主攻算法的面试官会问到,所以这里对所有的排序算法进行分析讲解,希望读者们在以后的面试算法中能够轻松应付。
  由于ObjectiveC的数组和字典不能存储值类型、结构体,也就是包括int、NSInteger、BOOL、CGRect类型都不能直接存储,需要转换成NSNumber或者NSValue来存储。所以为了展示排序算法,我们采用Swift语言来实现,首先Swift相比于ObjectiveC来说不区分可变和不可变数组,另外,Swift的数组和字典属于值类型,并且可以存储基本数据类型,甚至是nil也可以。。事实上,我们可以将partition放在快速排序的函数体内,成为其私有的函数,从而体现完整性,不过这里暂且只讨论算法,所以不做考虑。
  可以从代码中看出,partition函数是将数组的某一区域进行一个简单的排序划分,获取到划分的位置,根据其位置再将数组划分为两个区域,然后分别递归调用快速排序函数。
  接下来根据数组以及代码详细分析一下排序过程。
  我们传递的数组是[2, 1, 5, 9, 4, 0, 6, 3, 8, 7],并且传递了数组的一个区域,表示在该区域里执行。进入quickSort函数,由于数组个数至少是大于1的(个数为0或者为1没有必要排序),所以执行partition函数,partition函数是快速排序的要点所在,接下来,我们调用partition函数传递的参数,仍然是该数组以及其整个范围。鉴于Swift的参数默认为let不可修改,所以可以使用同arr参数类似的inout修饰,但这将使整个函数显得过于冗杂,因此在partition内创建同名的局部变量left、right,并且记录区域的个值pivot为arr[left],我们称其为比较数,然后便开始while循环了。
  

序言