本文是对 Swift Algorithm Club 翻译的一篇文章。
Swift Algorithm Club是 raywenderlich.com网站出品的用Swift实现算法和数据结构的开源项目,目前在GitHub上有18000+⭐️,我初略统计了一下,大概有一百左右个的算法和数据结构,基本上常见的都包含了,是iOSer学习算法和数据结构不错的资源。
andyRon/swift-algorithm-club-cn是我对Swift Algorithm Club,边学习边翻译的项目。欢迎有兴趣学习算法和数据结构,有时间的小伙伴一起参与翻译,欢迎issue,或者直接提交pull request。
什么是算法和数据结构?
一个算法就像一张教计算机“烹饪”的“食谱”。如果你了解做菜的过程,你就能理解算法的定义。
下面有一张关于制作薄饼的食谱:
- 在一个大碗里,将面粉,发酵粉,盐和糖过筛。
- 加入牛奶、鸡蛋和融化了的奶油。
- 搅拌混合直至丝柔顺滑。
- 中火加热平底锅。
- 将搅拌好的面糊缓慢倒入锅中,每个薄饼大概用1/4杯的面糊即可。
- 薄饼两面都呈黄褐色即可出锅享用了。
这张食谱由一系列的步骤组成,你只需一步接一步按照指令来就可以了。算法也是如此,只不过它的指令是交给计算机去执行的,而不是厨师。
这些原料(面粉、牛奶、鸡蛋、黄油等)相当于算法中的待处理数据。这些原始数据(各种不同的原料)作为算法的输入,输出的数据(好吃的薄饼)即是结果。
那么数据结构是什么?它们是在算法运行时保存数据的容器。例如,在煎饼配方中,数据结构是用于盛放面粉的袋子,是用于将所有东西组合在一起的搅拌碗,是用于煎饼的煎锅,是最后用于盛放成品煎饼的盘子。
网友评论