美文网首页
快速排序 | Swift 版本

快速排序 | Swift 版本

作者: 无夜之星辰 | 来源:发表于2020-12-16 22:20 被阅读0次
// MARK: - 快排
// 输入一个数组,返回从小到大排序的数组
func quickSort<T: Comparable>(inputArray: [T]) -> [T] {
    if inputArray.count <= 1 {
        return inputArray
    } else {
        var resultArray: [T] = []
        let base = inputArray.first!
        var leftArray: [T] = []
        var rightArray: [T] = []
        for i in 1..<inputArray.count {
            if inputArray[i] < base {
                leftArray.append(inputArray[i])
            } else {
                rightArray.append(inputArray[i])
            }
        }
        resultArray.append(contentsOf: quickSort(inputArray: leftArray))
        resultArray.append(base)
        resultArray.append(contentsOf: quickSort(inputArray: rightArray))
        return resultArray
    }
}

test:

print(quickSort(inputArray: [3, 1, 2, 2.2, 2.2, 2.2]))
print(quickSort(inputArray: ["c", "d", "b", "a"]))

let date1 = Date.init(timeIntervalSince1970: 1000)
let date2 = Date.init(timeIntervalSince1970: 2000)
let date3 = Date.init(timeIntervalSince1970: 3000)
let date4 = Date.init(timeIntervalSince1970: 4000)
print(quickSort(inputArray: [date2, date3, date1, date4]))

result:

[1.0, 2.0, 2.2, 2.2, 2.2, 3.0]
["a", "b", "c", "d"]
[1970-01-01 00:16:40 +0000, 1970-01-01 00:33:20 +0000, 1970-01-01 00:50:00 +0000, 1970-01-01 01:06:40 +0000]

相关文章

  • 快速排序 | Swift 版本

    test: result:

  • 多语言实现快速排序算法

    快速排序: 快速排序采用“分而治之、各个击破”的观念,此为原地(In-place)分割版本。 快速排序使用分治法(...

  • 双向链表的快速排序(swift版本)

    面试经常会被问到的单向链表的快速排序or双向链表的快速排序,现在用swift写了一个双向链表的快速排序,直接上代码...

  • swift中几种排序算法原理的UI动态实现

    swift中的排序算法总结 冒泡排序 选择排序 快速排序 插入排序 堆排序 归并排序 系统排序 我们将这几种数组排...

  • swift 快速排序

    快速排序 基本原理: 把待排序数组取出一个元素,对整个元素进行比较,把应该排在该元素前面的都放在左侧,放在后面的都...

  • Swift 快速排序

    快速排序是很常见的算法, 那么Swift要如何实现呢? 下面提供了一种思路

  • 2018-07-13

    快速排序算法 快排普通版本: 快排优化版本: 测试代码:

  • swift sorted 排序函数

    swift 提供了便捷的快速排序数组、字典的函数 sorted( )所有操作都在 swift 3.0 下完成 1....

  • 数组的排序

    系统提供的排序方法,我觉得应该是快速排序方法的封装 OC swift 还有其他排序的方法,可参考文章:iOS 数组...

  • 七种常见的数组排序算法整理(C语言版本)

    ~~~C语言版本~~~ 冒泡排序 选择排序 直接插入排序 二分插入排序 希尔排序 快速排序 堆排序 排序算法是否稳...

网友评论

      本文标题:快速排序 | Swift 版本

      本文链接:https://www.haomeiwen.com/subject/ejaogktx.html