我们在linux中用select实现多路复用中有几个宏 FD_SET FD_CLR FD_ZERO在这里充分利用到了集合的概念和算法:
因一项工作而卡住需等待这项工作时,导致别的工作不能完全进行(这样浪费资源和时间)怎么处理呢 这里有几种解决的方法
其中一种就是每隔一段时间进行循环检测看这项工作是否完成,这种的利弊我们暂且不谈:我们来说另一种集合的方法,(不知怎么就想到了函数指针表也记在这里吧也许什么时候灵感出现)
(
将现在能做的工作打表,然后依次运行运行完后再次检测当前时刻哪些工作准备好了,再次重复
)这样就尽可能减少应为阻塞而导致工程进度的耽搁
无损压缩常见的为Huffman算法和LZW(Lenpel-Ziv &Welch)压缩算法,huffman这个大家学过吧,功能是建立最优huffman树,使总长度变短。正好满足压缩的要求,对于LZW算法经常使用。举个例:
对原始数据ABCCAABCDDAACCDB进行LZW压缩
原始数据中,只包括4个字符(Character),A,B,C,D,四个字符可以用一个2bit的数表示,0-A,1-B,2-C,3-D,从最直观的角度看,原始字符串存在重复字符:ABCCAABCDDAACCDB,用4代表AB,5代表CC,上面的字符串可以替代表示为:45A4CDDAA5DB,这样是不是就比原数据短了一些呢!