扩展的find算法 -- find_nearest(查询最接近的数据)
来源:互联网 发布:js modal hide 编辑:程序博客网 时间:2024/06/05 10:06
通常使用需要快速查找定位的数据时,会通过 set/map 等保存数据,然后使用find等算法进行查找。
但有时想查找的数据不能完全匹配,而是查找一个最接近的值(比如,在两个不同的数据结构中,想匹配出ID相同,且发生时间最接近的数据)时,STL没有提供可用的函数,一般的做法就是将数据全部遍历计算一遍,然后选取最接近的值。其算法复杂度为 O(n)。
通过扩展,写出通用的模版算法 find_nearest 可以完成这个功能,适用于 set/map。
PS:原本想找现成的,可惜没有找到,只有自己写一个。感觉这个人的目的和我的比较接近:http://topic.csdn.net/u/20071112/10/226d912b-05b5-4e2f-8f8e-0a93ec76eeca.html
废话不多说了,直接上代码和UT。
代码:
UT(CppUnit):
- 扩展的find算法 -- find_nearest(查询最接近的数据)
- SQL查询最接近某一值的数据
- mysql 查询最接近某时间的数据
- 数字的最接近查询
- mysql查询最接近的记录
- 算法(根据提供的某数值,找出与其最接近的一组数据)
- 算法(根据提供的某数值,找出与其最接近的一组数据)
- 算法(根据提供的某数值,找出与其最接近的一组数据)
- 算法(根据提供的某数值,找出与其最接近的一组数据
- find命令的扩展
- 最接近π值的5位分数的算法
- 最接近的和
- 查找最接近的元素
- 最接近的数
- 最接近的数
- 最接近的数
- 查找最接近的元素
- 查找最接近的元素
- win32 api 取大体积文件大小
- 实战Linux Bluetooth编程(二) BlueZ简介
- 实战Linux Bluetooth编程(三) HCI层编程
- 实战Linux Bluetooth编程(四) L2CAP层编程
- 实战Linux Bluetooth编程(五) Socket与Bluetooth
- 扩展的find算法 -- find_nearest(查询最接近的数据)
- 实战Linux Bluetooth编程(六) L2CAP编程实例
- PLSQL安装问题
- 实战Linux Bluetooth编程 (七) SDP协议
- 实战 linux蓝牙编程之(八) hci 协议 应用编程实现
- rfcomm层的socket程序编写
- Linux下基于bluez与obex的服务
- 在Linux中使用蓝牙
- 连接蓝牙设备