refactor: use stride (#437)

This commit is contained in:
nuomi1 2023-03-23 02:57:31 +08:00 committed by GitHub
parent 5ba85ea69d
commit 31be65cc55
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -49,7 +49,7 @@ func quadratic(n: Int) -> Int {
func bubbleSort(nums: inout [Int]) -> Int {
var count = 0 //
// n-1, n-2, ..., 1
for i in sequence(first: nums.count - 1, next: { $0 > 0 + 1 ? $0 - 1 : nil }) {
for i in stride(from: nums.count - 1, to: 0, by: -1) {
//
for j in 0 ..< i {
if nums[j] > nums[j + 1] {
@ -112,7 +112,7 @@ func linearLogRecur(n: Double) -> Int {
return 1
}
var count = linearLogRecur(n: n / 2) + linearLogRecur(n: n / 2)
for _ in sequence(first: 0, next: { $0 < n - 1 ? $0 + 1 : nil }) {
for _ in stride(from: 0, to: n, by: 1) {
count += 1
}
return count
@ -149,7 +149,7 @@ enum TimeComplexity {
count = quadratic(n: n)
print("平方阶的计算操作数量 = \(count)")
var nums = Array(sequence(first: n, next: { $0 > 0 + 1 ? $0 - 1 : nil })) // [n,n-1,...,2,1]
var nums = Array(stride(from: n, to: 0, by: -1)) // [n,n-1,...,2,1]
count = bubbleSort(nums: &nums)
print("平方阶(冒泡排序)的计算操作数量 = \(count)")