0%

背包问题(Knapsack problem)是一种组合优化NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。

Read more »

二分查找

Go的sort包提供了一个二分查找的方法:sort.Search

1
func Search(n int, f func(int) bool) int

最初第一次看到这个函数的参数和返回值,有点疑惑,在我的印象中,二分查找是在一个有序数组中查找某一个特定的元素,返回其在数组中的位置。但接受一个整型的n和一个返回布尔值的闭包函数是为哪般?

看了文档,用了几次之后,越来越发觉这个函数设计的很妙。

Read more »

缓存文件置换机制电脑处理缓存存储器的一种机制。

电脑存储器空间的大小固定,无法容纳服务器上所有的文件,所以当有新的文件要被置换入缓存时,必须根据一定的原则来取代掉适当的文件。此原则即所谓缓存文件置换机制。

缓存文件置换方法有:

  • 先进先出算法(FIFO):最先进入的内容作为替换对象
  • 最近最少使用算法(LFU):最近最少使用的内容作为替换对象
  • 最久未使用算法(LRU):最久没有访问的内容作为替换对象
  • 非最近使用算法(NMRU):在最近没有使用的内容中随机选择一个作为替换对象
Read more »