最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Swift實(shí)現(xiàn)快速排序算法的代碼示例

 更新時(shí)間:2016年07月06日 10:21:21   作者:梁同桌  
這篇文章主要介紹了Swift實(shí)現(xiàn)快速排序算法的代碼示例,首先利用分治法講解了快速排序的思路,需要的朋友可以參考下

思想

快速排序作為分治代表,通常實(shí)現(xiàn)由三步

1.數(shù)據(jù)中選擇一個(gè)元素作為”基準(zhǔn)”(pivot),通常選取最后一個(gè)元素;
2.分區(qū)(partition) 所有小于”基準(zhǔn)”的元素,都移到”基準(zhǔn)”的左邊;所有大于”基準(zhǔn)”的元素,都移到”基準(zhǔn)”的右邊。分區(qū)操作結(jié)束后,基準(zhǔn)元素所處的位置就是最終排序后它的位置。
3.對(duì)“基準(zhǔn)”左邊和右邊的兩個(gè)子集,不斷重復(fù)第一步和第二步,直到所有子集只剩下一個(gè)元素為止。

實(shí)現(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) 

           

相關(guān)文章

最新評(píng)論

洪湖市| 镇远县| 田林县| 剑川县| 水城县| 雅安市| 柘城县| 扬州市| 怀安县| 定日县| 江山市| 高台县| 九江市| 清苑县| 茶陵县| 行唐县| 万宁市| 正镶白旗| 清水河县| 潮安县| 阜新| 东辽县| 宁远县| 奎屯市| 宁都县| 江口县| 曲麻莱县| 盖州市| 连城县| 商水县| 安溪县| 穆棱市| 兴隆县| 庆阳市| 渑池县| 金坛市| 永清县| 湘西| 漾濞| 日喀则市| 丰都县|