Swift實現(xiàn)快速排序算法的代碼示例
更新時間:2016年07月06日 10:21:21 作者:梁同桌
這篇文章主要介紹了Swift實現(xiàn)快速排序算法的代碼示例,首先利用分治法講解了快速排序的思路,需要的朋友可以參考下
思想
快速排序作為分治代表,通常實現(xiàn)由三步
1.數(shù)據(jù)中選擇一個元素作為”基準”(pivot),通常選取最后一個元素;
2.分區(qū)(partition) 所有小于”基準”的元素,都移到”基準”的左邊;所有大于”基準”的元素,都移到”基準”的右邊。分區(qū)操作結束后,基準元素所處的位置就是最終排序后它的位置。
3.對“基準”左邊和右邊的兩個子集,不斷重復第一步和第二步,直到所有子集只剩下一個元素為止。
實現(xiàn):
func quickSort(inout a: [Int], l: Int, r: Int) { if l < r { var i = l, j = r, x = a[i] while i < j && a[j] >= x { j -= 1 } if i < j { a[i] = a[j] i += 1 } while i < j && a[i] < x { i += 1 } if i < j { a[j] = a[i] j -= 1 } a[i] = x quickSort( & a, l: l, r: i - 1) quickSort( & a, l: i + 1, r: r) } } var b = [8, 7, 6, 5, 4, 3, 2, 1] quickSort( & b, l: 0, r: 7) print(b)
相關文章
在一個項目中同時使用Swift和Objective-C代碼混合編程的方法
這篇文章主要介紹了在一個項目中同時使用Swift和Objective-C代碼的方法,在一個工程中同時使用Swift和Objective-C混合語言編程的方法,需要的朋友可以參考下2014-07-07swift 錯誤處理do catch try try!使用詳解
這篇文章主要介紹了swift 錯誤處理do catch try try!使用詳解的相關資料,需要的朋友可以參考下2023-03-03SwiftUI 中創(chuàng)建反彈動畫的實現(xiàn)
這篇文章主要介紹了SwiftUI 中創(chuàng)建反彈動畫的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-10-10