Files
hello-algo/ru/codes/swift/chapter_computational_complexity/complexity_exercises.swift
Yudong Jin 28c1e74c1d Add multilingual exercise code (#1959)
Replace the exercise pages' Python-only snippets with source-backed implementations for the 13 visible programming languages, and localize reader-facing comments by site language. Zig remains out of scope.

Approval bypass: repository protection requires one approval but does not enforce it for administrators. All 68 completed checks succeeded; four non-required Java jobs remained queued on the existing ubuntu-20.04 workflow, with no failed checks.
2026-08-18 04:57:57 +08:00

63 lines
1.3 KiB
Swift
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
File: complexity_exercises.swift
Created Time: 2026-08-18
Author: Hello Algo Team
*/
/* Итеративное суммирование */
func sumIter(n: Int) -> Int {
var res = 0
for i in 1 ... n {
res += i
}
return res
}
/* Рекурсивное суммирование */
func sumRecur(n: Int) -> Int {
if n == 1 {
return 1
}
return n + sumRecur(n: n - 1)
}
/* Цикл линейной сложности */
func linearLoop(n: Int) -> Int {
var res = 0
for i in 0 ..< n {
res += i
}
return res
}
/* Цикл квадратичной сложности */
func quadraticLoop(n: Int) -> Int {
var res = 0
for i in 0 ..< n {
for j in i ..< n {
res += j
}
}
return res
}
/* Цикл логарифмической сложности */
func logarithmicLoop(n: Int) -> Int {
var n = n
while n > 1 {
n /= 2
}
return n
}
@main
enum ComplexityExercises {
static func main() {
assert(sumIter(n: 1) == 1 && sumRecur(n: 1) == 1)
assert(sumIter(n: 4) == 10 && sumRecur(n: 4) == 10)
assert(linearLoop(n: 4) == 6)
assert(quadraticLoop(n: 4) == 20)
assert(logarithmicLoop(n: 4) == 1 && logarithmicLoop(n: 5) == 1)
}
}