为什么要学习数据结构
熟练使用数据结构,运用各种算法是成为高级工程师必备功能,在一些中小型项目里可能感觉算法没什么用,但是在大型项目里多个线程开启计算数据,没有算法加持,点击某个功能就看到CPU暴涨,很容易出现卡顿现象甚至卡死,所以算法优化是个很重要的功能。 随着iOS开发越来越成熟,面试的问题越来越深,仅仅只会写代码已经不够了,大概17年开始面试会问及OC底层和数据结构,不论大厂小厂甚至小公司都要面试这些(就是内卷)。
开始了解大O
大O表示法可以粗略地指示算法的运行时间及其使用的内存量,就是时间和空间复杂度。 从最佳的O(1)到最垃圾O(n!),之间耗时是天差地别,数组的查找就是O(1),O(n!)通常就是递归算法导致。