This commit is contained in:
krahets
2023-09-02 23:03:42 +08:00
parent 799698e67c
commit 503ca797b8
12 changed files with 314 additions and 91 deletions

View File

@@ -122,7 +122,15 @@ status: new
=== "Swift"
```swift title="iteration.swift"
[class]{}-[func]{forLoop}
/* for 循环 */
func forLoop(n: Int) -> Int {
var res = 0
// 循环求和 1, 2, ..., n-1, n
for i in 1 ... n {
res += i
}
return res
}
```
=== "Zig"
@@ -148,7 +156,7 @@ status: new
=== "Rust"
```rust title="iteration.rs"
/* for 循环 */
/* for 循环 */
fn for_loop(n: i32) -> i32 {
let mut res = 0;
// 循环求和 1, 2, ..., n-1, n
@@ -294,7 +302,17 @@ status: new
=== "Swift"
```swift title="iteration.swift"
[class]{}-[func]{whileLoop}
/* while 循环 */
func whileLoop(n: Int) -> Int {
var res = 0
var i = 1 // 初始化条件变量
// 循环求和 1, 2, ..., n-1, n
while i <= n {
res += i
i += 1 // 更新条件变量
}
return res
}
```
=== "Zig"
@@ -473,7 +491,19 @@ status: new
=== "Swift"
```swift title="iteration.swift"
[class]{}-[func]{whileLoopII}
/* while 循环(两次更新) */
func whileLoopII(n: Int) -> Int {
var res = 0
var i = 1 // 初始化条件变量
// 循环求和 1, 4, ...
while i <= n {
res += i
// 更新条件变量
i += 1
i *= 2
}
return res
}
```
=== "Zig"
@@ -649,7 +679,18 @@ status: new
=== "Swift"
```swift title="iteration.swift"
[class]{}-[func]{nestedForLoop}
/* 双层 for 循环 */
func nestedForLoop(n: Int) -> String {
var res = ""
// 循环 i = 1, 2, ..., n-1, n
for i in 1 ... n {
// 循环 j = 1, 2, ..., n-1, n
for j in 1 ... n {
res.append("(\(i), \(j)), ")
}
}
return res
}
```
=== "Zig"
@@ -829,7 +870,17 @@ status: new
=== "Swift"
```swift title="recursion.swift"
[class]{}-[func]{recur}
/* 递归 */
func recur(n: Int) -> Int {
// 终止条件
if n == 1 {
return 1
}
// 递:递归调用
let res = recur(n: n - 1)
// 归:返回结果
return n + res
}
```
=== "Zig"
@@ -1006,7 +1057,15 @@ status: new
=== "Swift"
```swift title="recursion.swift"
[class]{}-[func]{tailRecur}
/* 尾递归 */
func tailRecur(n: Int, res: Int) -> Int {
// 终止条件
if n == 0 {
return res
}
// 尾递归调用
return tailRecur(n: n - 1, res: res + n)
}
```
=== "Zig"
@@ -1179,7 +1238,17 @@ status: new
=== "Swift"
```swift title="recursion.swift"
[class]{}-[func]{fib}
/* 斐波那契数列:递归 */
func fib(n: Int) -> Int {
// 终止条件 f(1) = 0, f(2) = 1
if n == 1 || n == 2 {
return n - 1
}
// 递归调用 f(n) = f(n-1) + f(n-2)
let res = fib(n: n - 1) + fib(n: n - 2)
// 返回结果 f(n)
return res
}
```
=== "Zig"

View File

@@ -1695,7 +1695,7 @@ $$
let count = 0; // 计数器
// 外循环:未排序区间为 [0, i]
for (let i = nums.length - 1; i > 0; i--) {
// 内循环:将未排序区间 [0, i] 中的最大元素交换至该区间的最右端
// 内循环:将未排序区间 [0, i] 中的最大元素交换至该区间的最右端
for (let j = 0; j < i; j++) {
if (nums[j] > nums[j + 1]) {
// 交换 nums[j] 与 nums[j + 1]
@@ -1718,7 +1718,7 @@ $$
let count = 0; // 计数器
// 外循环:未排序区间为 [0, i]
for (let i = nums.length - 1; i > 0; i--) {
// 内循环:将未排序区间 [0, i] 中的最大元素交换至该区间的最右端
// 内循环:将未排序区间 [0, i] 中的最大元素交换至该区间的最右端
for (let j = 0; j < i; j++) {
if (nums[j] > nums[j + 1]) {
// 交换 nums[j] 与 nums[j + 1]