2018-02-24 [swift日常實(shí)用func收集]排序

大家新年好,年也差不多過完了,需要繼續(xù)通過寫代碼來消耗過年長(zhǎng)的肥肉了。

年前將初級(jí)地圖編輯chapter看完后,今天弱弱地看了接下來要攻克的中級(jí)地圖編輯及l(fā)oading&save游戲數(shù)據(jù)兩個(gè)chapter。雖然年過完了,畢竟玩了將近十天沒有工作,狀態(tài)這些還有待恢復(fù),跟著做了一點(diǎn)可視化操作的步驟后就暫時(shí)做不下去了,索性先擱置一下,將intermediate map tile的章節(jié)留到下周一開始攻克(計(jì)劃五天完成臨摹實(shí)操和做筆記),今天下午就看了看蘋果的swift 4.1官網(wǎng)文檔中的closure,發(fā)現(xiàn)一個(gè)很基礎(chǔ)但也很實(shí)用的排序方法sorted(by: )

var names  = ["Alpha","Cinema","Bell","Zap"]

func backward(_ s1:String, _ s2:String)-> Bool {
    
    return s1 > s2

}

var reversedNames = names.sorted(by: backward)

backward方法的意義就在于將相鄰的兩個(gè)單元依據(jù)ASCII碼的順序進(jìn)行字符比較,如果前者大于后者,則return true。其實(shí)就是降序排列。

所以reversedNames數(shù)組中的元素就是按照字母順序倒序排列了。輸出如下:


image.png

playground的好處就在于右邊的output不僅可以看到輸出了什么,還可以看到func被調(diào)用了幾次,output中顯示的是6 times,原因就在于此方法將原names數(shù)組中的4個(gè)元素一一成對(duì)進(jìn)行了比對(duì),這種比對(duì)效率還是很低的,如果元素少還好,如果元素多了,可能就要采用更高級(jí)的排序算法了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1 初級(jí)排序算法 排序算法關(guān)注的主要是重新排列數(shù)組元素,其中每個(gè)元素都有一個(gè)主鍵。排序算法是將所有元素主鍵按某種方...
    深度沉迷學(xué)習(xí)閱讀 1,593評(píng)論 0 1
  • 排序的基本概念 在計(jì)算機(jī)程序開發(fā)過程中,經(jīng)常需要一組數(shù)據(jù)元素(或記錄)按某個(gè)關(guān)鍵字進(jìn)行排序,排序完成的序列可用于快...
    Jack921閱讀 1,565評(píng)論 1 4
  • 數(shù)據(jù)結(jié)構(gòu)與算法--排序之冒泡、選擇、插入、希爾 我們關(guān)注的主要對(duì)象是重新排列數(shù)組元素的算法,每個(gè)元素都有一個(gè)主鍵,...
    sunhaiyu閱讀 1,222評(píng)論 2 12
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,525評(píng)論 19 139
  • 計(jì)算機(jī)在進(jìn)行計(jì)算的時(shí)候都是利用二進(jìn)制的補(bǔ)碼來進(jìn)行計(jì)算的。 源碼: 正數(shù)的源碼最高位是0,負(fù)數(shù)的最高位是1,其他的是...
    frankisbaby閱讀 809評(píng)論 0 0

友情鏈接更多精彩內(nèi)容