mirror of
https://github.com/krahets/hello-algo.git
synced 2024-12-25 01:36:29 +08:00
chore: update driver code (#1265)
This commit is contained in:
parent
a3ee733e7b
commit
6404a53fc6
18 changed files with 439 additions and 421 deletions
|
@ -76,7 +76,7 @@ end
|
||||||
|
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
# 初始化数组
|
# 初始化数组
|
||||||
arr = Array.new(5, 0)
|
arr = Array.new(5, 0)
|
||||||
puts "数组 arr = #{arr}"
|
puts "数组 arr = #{arr}"
|
||||||
|
@ -105,3 +105,4 @@ traverse(nums)
|
||||||
# 查找元素
|
# 查找元素
|
||||||
index = find(nums, 3)
|
index = find(nums, 3)
|
||||||
puts "在 nums 中查找元素 3 ,得到索引 = #{index}"
|
puts "在 nums 中查找元素 3 ,得到索引 = #{index}"
|
||||||
|
end
|
||||||
|
|
|
@ -48,7 +48,7 @@ def find(head, target)
|
||||||
end
|
end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
# 初始化链表
|
# 初始化链表
|
||||||
# 初始化各个节点
|
# 初始化各个节点
|
||||||
n0 = ListNode.new(1)
|
n0 = ListNode.new(1)
|
||||||
|
@ -80,3 +80,4 @@ puts "链表中索引 3 处的节点的值 = #{node.val}"
|
||||||
# 查找节点
|
# 查找节点
|
||||||
index = find(n0, 2)
|
index = find(n0, 2)
|
||||||
puts "链表中值为 2 的节点的索引 = #{index}"
|
puts "链表中值为 2 的节点的索引 = #{index}"
|
||||||
|
end
|
||||||
|
|
|
@ -5,7 +5,7 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
|
||||||
=end
|
=end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
# 初始化列表
|
# 初始化列表
|
||||||
nums = [1, 3, 2, 5, 4]
|
nums = [1, 3, 2, 5, 4]
|
||||||
puts "列表 nums = #{nums}"
|
puts "列表 nums = #{nums}"
|
||||||
|
@ -57,3 +57,4 @@ puts "将列表 nums1 拼接到 nums 之后,得到 nums = #{nums}"
|
||||||
|
|
||||||
nums = nums.sort { |a, b| a <=> b }
|
nums = nums.sort { |a, b| a <=> b }
|
||||||
puts "排序列表后 nums = #{nums}"
|
puts "排序列表后 nums = #{nums}"
|
||||||
|
end
|
||||||
|
|
|
@ -95,7 +95,7 @@ class MyList
|
||||||
end
|
end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
# 初始化列表
|
# 初始化列表
|
||||||
nums = MyList.new
|
nums = MyList.new
|
||||||
|
|
||||||
|
@ -129,3 +129,4 @@ for i in 0...10
|
||||||
nums.add(i)
|
nums.add(i)
|
||||||
end
|
end
|
||||||
puts "扩容后的列表 nums = #{nums.to_array} ,容量 = #{nums.capacity} ,长度 = #{nums.size}"
|
puts "扩容后的列表 nums = #{nums.to_array} ,容量 = #{nums.capacity} ,长度 = #{nums.size}"
|
||||||
|
end
|
||||||
|
|
|
@ -62,7 +62,7 @@ def nested_for_loop(n)
|
||||||
end
|
end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
n = 5
|
n = 5
|
||||||
|
|
||||||
res = for_loop(n)
|
res = for_loop(n)
|
||||||
|
@ -76,3 +76,4 @@ puts "\nwhile 循环(两次更新)求和结果 res = #{res}"
|
||||||
|
|
||||||
res = nested_for_loop(n)
|
res = nested_for_loop(n)
|
||||||
puts "\n双层 for 循环的遍历结果 #{res}"
|
puts "\n双层 for 循环的遍历结果 #{res}"
|
||||||
|
end
|
||||||
|
|
|
@ -53,7 +53,7 @@ def fib(n)
|
||||||
end
|
end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
n = 5
|
n = 5
|
||||||
|
|
||||||
res = recur(n)
|
res = recur(n)
|
||||||
|
@ -67,3 +67,4 @@ puts "\n尾递归函数的求和结果 res = #{res}"
|
||||||
|
|
||||||
res = fib(n)
|
res = fib(n)
|
||||||
puts "\n斐波那契数列的第 #{n} 项为 #{res}"
|
puts "\n斐波那契数列的第 #{n} 项为 #{res}"
|
||||||
|
end
|
||||||
|
|
|
@ -72,7 +72,7 @@ def build_tree(n)
|
||||||
end
|
end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
n = 5
|
n = 5
|
||||||
|
|
||||||
# 常数阶
|
# 常数阶
|
||||||
|
@ -89,3 +89,4 @@ quadratic_recur(n)
|
||||||
# 指数阶
|
# 指数阶
|
||||||
root = build_tree(n)
|
root = build_tree(n)
|
||||||
print_tree(root)
|
print_tree(root)
|
||||||
|
end
|
||||||
|
|
|
@ -128,7 +128,7 @@ def factorial_recur(n)
|
||||||
end
|
end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
# 可以修改 n 运行,体会一下各种复杂度的操作数量变化趋势
|
# 可以修改 n 运行,体会一下各种复杂度的操作数量变化趋势
|
||||||
n = 8
|
n = 8
|
||||||
puts "输入数据大小 n = #{n}"
|
puts "输入数据大小 n = #{n}"
|
||||||
|
@ -162,3 +162,4 @@ puts "线性对数阶(递归实现)的操作数量 = #{count}"
|
||||||
|
|
||||||
count = factorial_recur(n)
|
count = factorial_recur(n)
|
||||||
puts "阶乘阶(递归实现)的操作数量 = #{count}"
|
puts "阶乘阶(递归实现)的操作数量 = #{count}"
|
||||||
|
end
|
||||||
|
|
|
@ -24,7 +24,7 @@ def find_one(nums)
|
||||||
end
|
end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
for i in 0...10
|
for i in 0...10
|
||||||
n = 100
|
n = 100
|
||||||
nums = random_numbers(n)
|
nums = random_numbers(n)
|
||||||
|
@ -32,3 +32,4 @@ for i in 0...10
|
||||||
puts "\n数组 [ 1, 2, ..., n ] 被打乱后 = #{nums}"
|
puts "\n数组 [ 1, 2, ..., n ] 被打乱后 = #{nums}"
|
||||||
puts "数字 1 的索引为 #{index}"
|
puts "数字 1 的索引为 #{index}"
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -109,7 +109,7 @@ class ArrayDeque
|
||||||
end
|
end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
# 初始化双向队列
|
# 初始化双向队列
|
||||||
deque = ArrayDeque.new(10)
|
deque = ArrayDeque.new(10)
|
||||||
deque.push_last(3)
|
deque.push_last(3)
|
||||||
|
@ -142,3 +142,4 @@ puts "双向队列长度 size = #{size}"
|
||||||
# 判断双向队列是否为空
|
# 判断双向队列是否为空
|
||||||
is_empty = deque.is_empty?
|
is_empty = deque.is_empty?
|
||||||
puts "双向队列是否为空 = #{is_empty}"
|
puts "双向队列是否为空 = #{is_empty}"
|
||||||
|
end
|
||||||
|
|
|
@ -69,7 +69,7 @@ class ArrayQueue
|
||||||
end
|
end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
# 初始化队列
|
# 初始化队列
|
||||||
queue = ArrayQueue.new(10)
|
queue = ArrayQueue.new(10)
|
||||||
|
|
||||||
|
@ -104,3 +104,4 @@ for i in 0...10
|
||||||
queue.pop
|
queue.pop
|
||||||
puts "第 #{i} 轮入队 + 出队后 queue = #{queue.to_array}"
|
puts "第 #{i} 轮入队 + 出队后 queue = #{queue.to_array}"
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -47,7 +47,7 @@ class ArrayStack
|
||||||
end
|
end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
# 初始化栈
|
# 初始化栈
|
||||||
stack = ArrayStack.new
|
stack = ArrayStack.new
|
||||||
|
|
||||||
|
@ -75,3 +75,4 @@ puts "栈的长度 size = #{size}"
|
||||||
# 判断是否为空
|
# 判断是否为空
|
||||||
is_empty = stack.is_empty?
|
is_empty = stack.is_empty?
|
||||||
puts "栈是否为空 = #{is_empty}"
|
puts "栈是否为空 = #{is_empty}"
|
||||||
|
end
|
||||||
|
|
|
@ -5,7 +5,7 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
|
||||||
=end
|
=end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
# 初始化双向队列
|
# 初始化双向队列
|
||||||
# Ruby 没有内直的双端队列,只能把 Array 当作双端队列来使用
|
# Ruby 没有内直的双端队列,只能把 Array 当作双端队列来使用
|
||||||
deque = []
|
deque = []
|
||||||
|
@ -39,3 +39,4 @@ puts "双向队列长度 size = #{size}"
|
||||||
# 判断双向队列是否为空
|
# 判断双向队列是否为空
|
||||||
is_empty = size.zero?
|
is_empty = size.zero?
|
||||||
puts "双向队列是否为空 = #{is_empty}"
|
puts "双向队列是否为空 = #{is_empty}"
|
||||||
|
end
|
||||||
|
|
|
@ -132,7 +132,7 @@ class LinkedListDeque
|
||||||
end
|
end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
# 初始化双向队列
|
# 初始化双向队列
|
||||||
deque = LinkedListDeque.new
|
deque = LinkedListDeque.new
|
||||||
deque.push_last(3)
|
deque.push_last(3)
|
||||||
|
@ -165,3 +165,4 @@ puts "双向队列长度 size = #{size}"
|
||||||
# 判断双向队列是否为空
|
# 判断双向队列是否为空
|
||||||
is_empty = deque.is_empty?
|
is_empty = deque.is_empty?
|
||||||
puts "双向队列是否为空 = #{is_empty}"
|
puts "双向队列是否为空 = #{is_empty}"
|
||||||
|
end
|
||||||
|
|
|
@ -70,7 +70,7 @@ class LinkedListQueue
|
||||||
end
|
end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
# 初始化队列
|
# 初始化队列
|
||||||
queue = LinkedListQueue.new
|
queue = LinkedListQueue.new
|
||||||
|
|
||||||
|
@ -98,3 +98,4 @@ puts "队列长度 size = #{size}"
|
||||||
# 判断队列是否为空
|
# 判断队列是否为空
|
||||||
is_empty = queue.is_empty?
|
is_empty = queue.is_empty?
|
||||||
puts "队列是否为空 = #{is_empty}"
|
puts "队列是否为空 = #{is_empty}"
|
||||||
|
end
|
||||||
|
|
|
@ -56,7 +56,7 @@ class LinkedListStack
|
||||||
end
|
end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
# 初始化栈
|
# 初始化栈
|
||||||
stack = LinkedListStack.new
|
stack = LinkedListStack.new
|
||||||
|
|
||||||
|
@ -84,3 +84,4 @@ puts "栈的长度 size = #{size}"
|
||||||
# 判断是否为空
|
# 判断是否为空
|
||||||
is_empty = stack.is_empty?
|
is_empty = stack.is_empty?
|
||||||
puts "栈是否为空 = #{is_empty}"
|
puts "栈是否为空 = #{is_empty}"
|
||||||
|
end
|
||||||
|
|
|
@ -5,7 +5,7 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
|
||||||
=end
|
=end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
# 初始化队列
|
# 初始化队列
|
||||||
# Ruby 内置的队列(Thread::Queue) 没有 peek 和遍历方法,可以把 Array 当作队列来使用
|
# Ruby 内置的队列(Thread::Queue) 没有 peek 和遍历方法,可以把 Array 当作队列来使用
|
||||||
queue = []
|
queue = []
|
||||||
|
@ -35,3 +35,4 @@ puts "队列长度 size = #{size}"
|
||||||
# 判断队列是否为空
|
# 判断队列是否为空
|
||||||
is_empty = queue.empty?
|
is_empty = queue.empty?
|
||||||
puts "队列是否为空 = #{is_empty}"
|
puts "队列是否为空 = #{is_empty}"
|
||||||
|
end
|
||||||
|
|
|
@ -5,7 +5,7 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
|
||||||
=end
|
=end
|
||||||
|
|
||||||
### Driver Code ###
|
### Driver Code ###
|
||||||
|
if __FILE__ == $0
|
||||||
# 初始化栈
|
# 初始化栈
|
||||||
# Ruby 没有内置的栈类,可以把 Array 当作栈来使用
|
# Ruby 没有内置的栈类,可以把 Array 当作栈来使用
|
||||||
stack = []
|
stack = []
|
||||||
|
@ -34,3 +34,4 @@ puts "栈的长度 size = #{size}"
|
||||||
# 判断是否为空
|
# 判断是否为空
|
||||||
is_empty = stack.empty?
|
is_empty = stack.empty?
|
||||||
puts "栈是否为空 = #{is_empty}"
|
puts "栈是否为空 = #{is_empty}"
|
||||||
|
end
|
||||||
|
|
Loading…
Reference in a new issue