Chapter 3: Complexity
Last updated
Last updated
// 方法一: O(n)
func sumFromOne(upto n: Int) -> Int {
var result = 0
for i in 1...n {
result += i
}
return result
}
sumFromOne(upto: 10000)
// 方法二: O(n), 但會比方法一快一點, 因為這是compiler code
func sumFromOne(upto n: Int) -> Int {
return (1...n).reduce(0, +)
}
sumFromOne(upto: 10000)
// 方法三: O(1), 利用Fredrick Gauss
func sumFromOne(upto n: Int) -> Int {
return (n + 1) * n / 2
}
sumFromOne(upto: 10000)