作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想以压缩格式存储以下元组的列表,我想知道哪种算法能给我
我的数据是这样的:
(<int>, <int>, <double>),
(<int>, <int>, <double>),
...
(<int>, <int>, <double>)
两个整数之一指的是一个时间点,很可能在一个列表中结束的数字彼此接近。另一个 int 代表一个抽象的 id 并且值不太可能接近,尽管它们也不会是完全随机的。 double 表示传感器读数,虽然这些值之间存在一些相关性,但可能用处不大。
最佳答案
由于“时间”整数可以彼此接近,请尝试仅存储第一个,然后将差异保存到之前的整数(增量编码)。您也可以对第二个 int 进行同样的尝试。
您可以尝试的另一件事是将数据从 [int1, int2, double]、[int1, int2, double]... 重组为 [int1, int1...]、[int2, int2...] , [双, 双...].
要找出结果的压缩范围,您可以将数据写入文件并从 Christian Martelock 下载压缩器 CCM here .我发现它对于此类数据收集表现非常好。它使用相当快的 context mixing算法。您还可以将它与其他压缩器(如 WinZIP)或使用压缩库(如 zLib)进行比较,看看它是否值得。
关于algorithm - 最好的压缩算法? (最佳定义见下文),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/277409/
我是一名优秀的程序员,十分优秀!