原文出自http://waynewbishop.com/swift
Introduction
這個(gè)系列提供了一個(gè)使用Swift實(shí)現(xiàn)常用數(shù)據(jù)結(jié)構(gòu)和算法的介紹稠腊。很多算法的細(xì)節(jié)描述已經(jīng)存在于維基百科上了,這些算法的描述丧失,一般使用了偽代碼或者C,C++進(jìn)行實(shí)現(xiàn)疤苹。隨著蘋果官方正式發(fā)布了Swift类少,它簡(jiǎn)明的語法風(fēng)格應(yīng)該與上述語言足夠相似以便于大多數(shù)程序員理解砌庄。
讀者
作為這系列的讀者,你應(yīng)該對(duì)編程的基礎(chǔ)概念十分熟悉复唤。除了基本的算法健田,這個(gè)教程也提供Swift的基本教程,包括一些Swift的語法糖佛纫,比如可選類型和泛型妓局。另外,讀者也需要熟悉工廠模式呈宇,集合好爬,數(shù)組,字典等這些概念甥啄。
為什么使用算法
當(dāng)構(gòu)建現(xiàn)代應(yīng)用時(shí)存炮,許多基本理論中包含的算法往往被忽略了。對(duì)于處理相對(duì)少量數(shù)據(jù)的解決方案蜈漓,有關(guān)特定技術(shù)或者設(shè)計(jì)模式的決定可能并不是很重要穆桂,因?yàn)橹皇且尮δ苓\(yùn)作起來。然而融虽,隨著用戶數(shù)量的增長(zhǎng)享完,數(shù)據(jù)往往會(huì)越來越大。大多數(shù)大型技術(shù)公司成功的原因有额,是因?yàn)樗麄兊哪芰梢蕴幚泶罅康臄?shù)據(jù)般又,能夠連接用戶彼绷,分享,完成交易并作出決策倒源。
投資者往往利用數(shù)據(jù)來對(duì)創(chuàng)業(yè)公司進(jìn)行獨(dú)到的分析苛预,如果只是將應(yīng)用程序連接到一個(gè)簡(jiǎn)單的數(shù)據(jù)庫是無法對(duì)數(shù)據(jù)進(jìn)行分析的。這些分析的實(shí)現(xiàn)往往通過創(chuàng)建獨(dú)特的算法笋熬,例如谷歌的pageRank或者facebook的圖算法热某。其他類別的算法包括Linkedln的社交網(wǎng)絡(luò),Uber的預(yù)測(cè)分析以及亞馬遜的機(jī)器學(xué)習(xí)等胳螟。