mirror of
https://github.com/krahets/hello-algo.git
synced 2025-07-06 22:34:18 +08:00
fix: adapt missing ruby style guide (#1216)
This commit is contained in:
@ -9,7 +9,7 @@ def recur(n)
|
||||
# 终止条件
|
||||
return 1 if n == 1
|
||||
# 递:递归调用
|
||||
res = recur n - 1
|
||||
res = recur(n - 1)
|
||||
# 归:返回结果
|
||||
n + res
|
||||
end
|
||||
@ -39,7 +39,7 @@ def tail_recur(n, res)
|
||||
# 终止条件
|
||||
return res if n == 0
|
||||
# 尾递归调用
|
||||
tail_recur n - 1, res + n
|
||||
tail_recur(n - 1, res + n)
|
||||
end
|
||||
|
||||
### 斐波那契数列:递归 ###
|
||||
@ -56,14 +56,14 @@ end
|
||||
|
||||
n = 5
|
||||
|
||||
res = recur n
|
||||
res = recur(n)
|
||||
puts "\n递归函数的求和结果 res = #{res}"
|
||||
|
||||
res = for_loop_recur n
|
||||
res = for_loop_recur(n)
|
||||
puts "\n使用迭代模拟递归求和结果 res = #{res}"
|
||||
|
||||
res = tail_recur n, 0
|
||||
res = tail_recur(n, 0)
|
||||
puts "\n尾递归函数的求和结果 res = #{res}"
|
||||
|
||||
res = fib n
|
||||
res = fib(n)
|
||||
puts "\n斐波那契数列的第 #{n} 项为 #{res}"
|
||||
|
@ -30,7 +30,7 @@ end
|
||||
### 线性阶 ###
|
||||
def linear(n)
|
||||
# 长度为 n 的列表占用 O(n) 空间
|
||||
nums = Array.new n, 0
|
||||
nums = Array.new(n, 0)
|
||||
|
||||
# 长度为 n 的哈希表占用 O(n) 空间
|
||||
hmap = {}
|
||||
@ -43,13 +43,13 @@ end
|
||||
def linear_recur(n)
|
||||
puts "递归 n = #{n}"
|
||||
return if n == 1
|
||||
linear_recur n - 1
|
||||
linear_recur(n - 1)
|
||||
end
|
||||
|
||||
### 平方阶 ###
|
||||
def quadratic(n)
|
||||
# 二维列表占用 O(n^2) 空间
|
||||
Array.new(n) { Array.new n, 0 }
|
||||
Array.new(n) { Array.new(n, 0) }
|
||||
end
|
||||
|
||||
### 平方阶(递归实现)###
|
||||
@ -57,8 +57,8 @@ def quadratic_recur(n)
|
||||
return 0 unless n > 0
|
||||
|
||||
# 数组 nums 长度为 n, n-1, ..., 2, 1
|
||||
nums = Array.new n, 0
|
||||
quadratic_recur n - 1
|
||||
nums = Array.new(n, 0)
|
||||
quadratic_recur(n - 1)
|
||||
end
|
||||
|
||||
### 指数阶(建立满二叉树)###
|
||||
@ -66,8 +66,8 @@ def build_tree(n)
|
||||
return if n == 0
|
||||
|
||||
TreeNode.new.tap do |root|
|
||||
root.left = build_tree n - 1
|
||||
root.right = build_tree n - 1
|
||||
root.left = build_tree(n - 1)
|
||||
root.right = build_tree(n - 1)
|
||||
end
|
||||
end
|
||||
|
||||
@ -76,16 +76,16 @@ end
|
||||
n = 5
|
||||
|
||||
# 常数阶
|
||||
constant n
|
||||
constant(n)
|
||||
|
||||
# 线性阶
|
||||
linear n
|
||||
linear_recur n
|
||||
linear(n)
|
||||
linear_recur(n)
|
||||
|
||||
# 平方阶
|
||||
quadratic n
|
||||
quadratic_recur n
|
||||
quadratic(n)
|
||||
quadratic_recur(n)
|
||||
|
||||
# 指数阶
|
||||
root = build_tree n
|
||||
print_tree root
|
||||
root = build_tree(n)
|
||||
print_tree(root)
|
||||
|
@ -133,32 +133,32 @@ end
|
||||
n = 8
|
||||
puts "输入数据大小 n = #{n}"
|
||||
|
||||
count = constant n
|
||||
count = constant(n)
|
||||
puts "常数阶的操作数量 = #{count}"
|
||||
|
||||
count = linear n
|
||||
count = linear(n)
|
||||
puts "线性阶的操作数量 = #{count}"
|
||||
count = array_traversal Array.new n, 0
|
||||
count = array_traversal(Array.new(n, 0))
|
||||
puts "线性阶(遍历数组)的操作数量 = #{count}"
|
||||
|
||||
count = quadratic n
|
||||
count = quadratic(n)
|
||||
puts "平方阶的操作数量 = #{count}"
|
||||
nums = Array.new(n) { |i| n - i } # [n, n-1, ..., 2, 1]
|
||||
count = bubble_sort nums
|
||||
count = bubble_sort(nums)
|
||||
puts "平方阶(冒泡排序)的操作数量 = #{count}"
|
||||
|
||||
count = exponential n
|
||||
count = exponential(n)
|
||||
puts "指数阶(循环实现)的操作数量 = #{count}"
|
||||
count = exp_recur n
|
||||
count = exp_recur(n)
|
||||
puts "指数阶(递归实现)的操作数量 = #{count}"
|
||||
|
||||
count = logarithmic n
|
||||
count = logarithmic(n)
|
||||
puts "对数阶(循环实现)的操作数量 = #{count}"
|
||||
count = log_recur n
|
||||
count = log_recur(n)
|
||||
puts "对数阶(递归实现)的操作数量 = #{count}"
|
||||
|
||||
count = linear_log_recur n
|
||||
count = linear_log_recur(n)
|
||||
puts "线性对数阶(递归实现)的操作数量 = #{count}"
|
||||
|
||||
count = factorial_recur n
|
||||
count = factorial_recur(n)
|
||||
puts "阶乘阶(递归实现)的操作数量 = #{count}"
|
||||
|
@ -27,8 +27,8 @@ end
|
||||
|
||||
for i in 0...10
|
||||
n = 100
|
||||
nums = random_number n
|
||||
index = find_one nums
|
||||
nums = random_number(n)
|
||||
index = find_one(nums)
|
||||
puts "\n数组 [ 1, 2, ..., n ] 被打乱后 = #{nums}"
|
||||
puts "数字 1 的索引为 #{index}"
|
||||
end
|
||||
|
Reference in New Issue
Block a user