37 lines
1.5 KiB
Groovy
37 lines
1.5 KiB
Groovy
def items = [
|
|
[name:"map", weight:9, value:150],
|
|
[name:"compass", weight:13, value:35],
|
|
[name:"water", weight:153, value:200],
|
|
[name:"sandwich", weight:50, value:160],
|
|
[name:"glucose", weight:15, value:60],
|
|
[name:"tin", weight:68, value:45],
|
|
[name:"banana", weight:27, value:60],
|
|
[name:"apple", weight:39, value:40],
|
|
[name:"cheese", weight:23, value:30],
|
|
[name:"beer", weight:52, value:10],
|
|
[name:"suntan cream", weight:11, value:70],
|
|
[name:"camera", weight:32, value:30],
|
|
[name:"t-shirt", weight:24, value:15],
|
|
[name:"trousers", weight:48, value:10],
|
|
[name:"umbrella", weight:73, value:40],
|
|
[name:"waterproof trousers", weight:42, value:70],
|
|
[name:"waterproof overclothes", weight:43, value:75],
|
|
[name:"note-case", weight:22, value:80],
|
|
[name:"sunglasses", weight:7, value:20],
|
|
[name:"towel", weight:18, value:12],
|
|
[name:"socks", weight:4, value:50],
|
|
[name:"book", weight:30, value:10],
|
|
]
|
|
|
|
[knapsack01bf, knapsack01dp].each { knapsack01 ->
|
|
def start = System.currentTimeMillis()
|
|
def packingList = knapsack01(items)
|
|
def elapsed = System.currentTimeMillis() - start
|
|
|
|
println "\n\n\nElapsed Time: ${elapsed/1000.0} s"
|
|
println "Total Weight: ${totalWeight(packingList)}"
|
|
println " Total Value: ${totalValue(packingList)}"
|
|
packingList.each {
|
|
printf (" item: %-25s weight:%4d value:%4d\n", it.name, it.weight, it.value)
|
|
}
|
|
}
|