算法设计技巧概览
1. 暴力算法(Brute Force Algorithm)
暴力算法是一种直接解决问题的方法,通常通过枚举所有可能的解并检查每一个解是否满足问题的要求来找到正确答案。虽然这种方法简单易懂,但对于大规模数据集来说效率较低。它适用于小规模数据集或者当没有更好的算法可用时。
示例:冒泡排序
def bubble_sort(arr)
n = arr.length
loop do
swapped = false
(n-1).times do |i|
if arr[i] > arr[i+1]
arr[i], arr[i+1] = arr[i+1], arr[i]
swapped = true
end
end
break unless swapped
end
arr
end
2. 贪心算法(Greedy Algorithm)
贪心算法在每一步都做出局部最优的选择,期望通过一系列的局部最优解能够构造出全局最优解。这种方法在某些情况下可以有效地解决问题,但在其他情况下可能无法保证全局最优解。
特征
- 贪心选择 :在每一步选择当前最优解。
- 最优子结构 :全局最优解由局部最优解组成。
示例:硬币找零问题
假设我们需要用最少数量的硬币凑出给定金
超级会员免费看
订阅专栏 解锁全文
779

被折叠的 条评论
为什么被折叠?



