Swift版快速排序
来源:互联网 发布:js获取自定义标签的值 编辑:程序博客网 时间:2024/05/18 01:38
步骤:
1.- 从数列中挑出一个元素,称为 “基准”(Pivot),
2.- 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。
3.- 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。
排序效果:
Swift代码:
func QuickSort(inout list: [Int], first: Int, last: Int) { var i, j, key: Int if first >= last { return; } i = first j = last key = list[i] while i < j { //找出来比key小的 并排到key前面 while i < j && list[j] > key { j-- } if i < j { list[i++] = list[j] } //找出来比key大的 并排到key后面 while i < j && list[i] < key { i++ } if i < j { list[j--] = list[i] } } list[i] = key //将key前面元素递归的进行下一轮排序 if first < i - 1 { QuickSort(&list, first: first, last: i - 1) } //将key后面的元素递归的进行下一轮排序 if i + 1 < last { QuickSort(&list, first: i + 1, last: last) }}var list: [Int] = Array()//生成一组随机整数for index in 1...10 { list.append(Int(arc4random() % 100 + 1))}print(list)QuickSort(&list, first: 0, last: list.count - 1)print(list)
结果:
0 0
- Swift版快速排序
- Swift 快速排序
- swift 3.0 冒泡排序,插入排序,选择排序,快速排序
- 快速排序/二分插入排序的swift以及Java实现
- (Swift 实现)排序 —— 快速排序
- Swift实现的快速排序及sorted方法的对比
- 快速排序--weiss版
- php版 快速排序
- 快速排序(java版)
- 快速排序(优化版)
- 快速排序【递归版】
- 递归版快速排序
- 快速排序 java版
- 快速排序java版
- java版快速排序
- Java版快速排序
- 快速排序C++版
- php版快速排序
- 揭开网络编程常见API的面纱【上】
- OpenCV进行图像相似度对比的几种办法
- Hadoop bin/hadoop namenode -format 时遇到的几个问题
- 课程流恢复步骤和恢复后的地址
- Java基本功——Reference
- Swift版快速排序
- ASP.NET中的几种弹出框提示基本实现方法
- php连接 sql server
- 揭开网络编程常见API的面纱【下】
- GVIM 简单配置
- @Autowired与@Resource的区别
- android 获取顶部状态栏 信息 高度
- Super关键字
- Java并发下的count++问题