Swift實現快速排序算法的代碼示例
更新時間:2016年07月06日 10:21:21 作者:梁同桌
這篇文章主要介紹了Swift實現快速排序算法的代碼示例,首先利用分治法講解了快速排序的思路,需要的朋友可以參考下
思想
快速排序作為分治代表,通常實現由三步
1.數據中選擇一個元素作為”基準”(pivot),通常選取最后一個元素;
2.分區(qū)(partition) 所有小于”基準”的元素,都移到”基準”的左邊;所有大于”基準”的元素,都移到”基準”的右邊。分區(qū)操作結束后,基準元素所處的位置就是最終排序后它的位置。
3.對“基準”左邊和右邊的兩個子集,不斷重復第一步和第二步,直到所有子集只剩下一個元素為止。
實現:
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-07
swift 錯誤處理do catch try try!使用詳解
這篇文章主要介紹了swift 錯誤處理do catch try try!使用詳解的相關資料,需要的朋友可以參考下2023-03-03

