原文出自http://waynewbishop.com/swift
Introduction
這個系列提供了一個使用Swift實現(xiàn)常用數(shù)據(jù)結(jié)構(gòu)和算法的介紹。很多算法的細節(jié)描述已經(jīng)存在于維基百科上了,這些算法的描述,一般使用了偽代碼或者C,C++進行實現(xiàn)。隨著蘋果官方正式發(fā)布了Swift,它簡明的語法風格應(yīng)該與上述語言足夠相似以便于大多數(shù)程序員理解。
讀者
作為這系列的讀者,你應(yīng)該對編程的基礎(chǔ)概念十分熟悉。除了基本的算法,這個教程也提供Swift的基本教程,包括一些Swift的語法糖,比如可選類型和泛型。另外,讀者也需要熟悉工廠模式,集合,數(shù)組,字典等這些概念。
為什么使用算法
當構(gòu)建現(xiàn)代應(yīng)用時,許多基本理論中包含的算法往往被忽略了。對于處理相對少量數(shù)據(jù)的解決方案,有關(guān)特定技術(shù)或者設(shè)計模式的決定可能并不是很重要,因為只是要讓功能運作起來。然而,隨著用戶數(shù)量的增長,數(shù)據(jù)往往會越來越大。大多數(shù)大型技術(shù)公司成功的原因,是因為他們的能力可以處理大量的數(shù)據(jù),能夠連接用戶,分享,完成交易并作出決策。
投資者往往利用數(shù)據(jù)來對創(chuàng)業(yè)公司進行獨到的分析,如果只是將應(yīng)用程序連接到一個簡單的數(shù)據(jù)庫是無法對數(shù)據(jù)進行分析的。這些分析的實現(xiàn)往往通過創(chuàng)建獨特的算法,例如谷歌的pageRank或者facebook的圖算法。其他類別的算法包括Linkedln的社交網(wǎng)絡(luò),Uber的預(yù)測分析以及亞馬遜的機器學習等。