目录
一、贪心算法
二、小结
贪心算法总是做出当前最好的选择,期望通过局部最优选择得到全局最优的解决方案。贪心算法一旦做出选择后,不管将来有什么结果,都不能改变。
贪心本质:贪心选择性质和最优子结构性质。
贪心选择性质:原问题的整体最优解可以通过一系列局部最优选择得到。
最优子结构:当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。
竹篮的载重是30,在不破坏零食和不超过载重的情况下,怎么装最多的零食?
零食重量 | 4 | 10 | 7 | 11 | 3 | 5 | 14 | 2 |
package Algorithm
func sort(arr: Array) {
for (i in 0..arr.size - 1) {
var minIndex = i
for (j in i + 1..arr.size) {
if (arr[j] < arr[minIndex]) {
minIndex = j
}
}
var temp = arr[i]
arr[i] = arr[minIndex]
arr[minIndex] = temp
}
return arr
}
func tx(arr: Array, weight: Int64) {
var temp = 0
var count = 0
for (i in 0..arr.size) {
temp += arr[i]
if (temp <= weight) {
count++
} else {
break
}
}
return count
}
main() {
let arr = [4, 10, 7, 11, 3, 5, 14, 2]
println("可以装入零食数: ${tx(sort(arr), 30)}")
}
本章为大家详细的介绍了仓颉数据结构与算法中贪心算法的内容,下一章,为大家带来贪心算法练习题的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉数据结构与算法有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家!!!