国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Swift > 正文

Swift實現快速排序算法的代碼示例

2020-03-09 17:48:13
字體:
來源:轉載
供稿:網友

思想

快速排序作為分治代表,通常實現由三步

1.數據中選擇一個元素作為”基準”(pivot),通常選取最后一個元素;
2.分區(partition) 所有小于”基準”的元素,都移到”基準”的左邊;所有大于”基準”的元素,都移到”基準”的右邊。分區操作結束后,基準元素所處的位置就是最終排序后它的位置。
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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 房山区| 游戏| 信阳市| 卢湾区| 郸城县| 敦煌市| 蒙山县| 凤城市| 凤山市| 马尔康县| 白城市| 柞水县| 遂川县| 永平县| 仙居县| 翁源县| 澄江县| 漾濞| 乌审旗| 抚松县| 林西县| 陇南市| 许昌市| 淄博市| 海林市| 鹿邑县| 柳林县| 札达县| 涞水县| 崇州市| 阿城市| 万盛区| 东光县| 内黄县| 尚志市| 通榆县| 云阳县| 梨树县| 安龙县| 天门市| 玉树县|