快排和斐波拉契数列

318 阅读1分钟
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let result = quicksort([1000,3,4,100,33,200])
        print(result)
        print(Fib(6))
    }
    //快排算法
    func quicksort(_ array:[Int]) -> [Int] {
        guard array.count > 1 else {
            return array
        }
        let pivot = array[array.count / 2]
        let left = array.filter {$0 < pivot}
        let middle = array.filter {$0 == pivot}
        let right = array.filter {$0 > pivot}
        return quicksort(left) + middle + quicksort(right)
    }
    //斐波拉契数列问题
    func Fib(_ number:Int) -> Int {
        guard number > 0 else {
            return 0
        }
        if number == 1 || number == 2 {
            return 1
        }
        return Fib(number - 1) + Fib(number - 2)
    }

}