Swift實現(xiàn)Selection Sort選擇排序算法的實例講解
選擇排序Selection Sort是一種和插入排序Insertion Sort類似的排序方法,它同樣只適用于對規(guī)模不大的集合進行排序。它的核心思想是,在序列內(nèi)部,把序列邏輯上分成已排序和未排序兩部分,不斷找到未排序部分中最符合排序規(guī)則的元素,添加進已排序部分,直到序列中所有元素都已經(jīng)添加到了已排序部分,此時,整個序列就排序完成了。
冒泡排序是兩兩比較不斷交換來實現(xiàn)排序,所以比較繁瑣。
而選擇排序 則是先選擇要交換的那個數(shù),才去交換。這樣就可以省去很多不必要的步驟。
Swift版實現(xiàn)示例:
func selectSort(var arr: [Int]) ->[Int] { var min = 0 // 只需要n-1趟 for var i = 0; i < arr.count - 1; ++i { min = i // 從第n+1趟起始找到末尾 for var j = i + 1; j < arr.count; ++j { // 找到比min位置更小的,就更新這一趟所找到的最小值的位置 if arr[j] < arr[min] { min = j } } // 如果min與i不相等,說明有比i位置更小的,所以需要交換 if min != i { let temp = arr[i] arr[i] = arr[min] arr[min] = temp } } return arr }
相關文章
switch實現(xiàn)一個兩數(shù)的運算代碼示例
這篇文章主要介紹了switch實現(xiàn)一個兩數(shù)的運算代碼示例,需要的朋友可以參考下2017-06-06Swift HTTP加載請求Loading Requests教程
這篇文章主要為大家介紹了Swift HTTP加載請求Loading Requests教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02Swift算法實現(xiàn)字符串轉(zhuǎn)數(shù)字的方法示例
最近學完了swift想著實踐下,就通過一些簡單的算法進行學習研究,下面這篇文章主要介紹了Swift算法實現(xiàn)字符串轉(zhuǎn)數(shù)字的方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03淺析Swift中struct與class的區(qū)別(匯編角度底層分析)
這篇文章主要介紹了Swift中struct與class的區(qū)別 ,本文從匯編角度分析struct與class的區(qū)別,通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03Swift免費短信驗證碼實現(xiàn)及動態(tài)倒計時功能
這篇文章主要介紹了Swift免費短信驗證碼實現(xiàn)及動態(tài)倒計時功能的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02使用Swift實現(xiàn)iOS App中解析XML格式數(shù)據(jù)的教程
這篇文章主要介紹了使用Swift實現(xiàn)iOS App中解析XML格式數(shù)據(jù)的教程,講到了iOS中提供的NSXMLParser和NSXMLParserDelegate兩個API的用法,需要的朋友可以參考下2016-04-04