国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新民市| 泾川县| 崇阳县| 措勤县| 石门县| 肥乡县| 滁州市| 富顺县| 大姚县| 绥芬河市| 灵川县| 永吉县| 宝清县| 桂平市| 子洲县| 日喀则市| 四平市| 苏尼特右旗| 三江| 临朐县| 诸暨市| 三明市| 明光市| 邹城市| 阿拉尔市| 北海市| 麻江县| 东方市| 湖南省| 深泽县| 宜昌市| 安平县| 金塔县| 柳江县| 喀什市| 上林县| 玛沁县| 漳州市| 兰州市| 西藏| 石泉县|