要对齐一段时间内两组时间密度不一样的数据,S组是4000个时间节点,G组是20000多个时间节点,这里展示了三种方法:
1、快速扫描算法,设置时间精度为0.005s,n的初值为0,只要找到S组每个时间节点对应的G组节点,则取出来。算法复杂度N2。这里有个问题是,一旦有一个数据没对齐,后面的数据则无法对齐了。
2、完全扫描模式,N3
3、逐段扫描模式,找到S组每两个时间节点的间距,取间距的一半,以此为一段。每过一段,无论这一段内是否对齐或者对齐了多组数据,都开始下一段。N2
/ 快速扫描模式
//for (int i = 0; i < arrGprimal.size(); i++) //G的时间数据
//{
// if (abs(arrGprimal[i][0] - arrCprimal[n][0]) < 0.005)
// {
// for (int j = 0; j < 8; j++) //输出G的对应数据
// {
// outFileCoarse << arrGprimal[i][j] << ",";
// }
// for (int j = 0; j < 8; j++) //输出S的对应数据
// {
// outFileCoarse << arrCprimal[n][j] << ",";
// }
// outFileCoarse << endl;
// n++;
// }
// if (n >= arrCprimal.size())
// break;
//}
//
// 完全扫描模式
//for (int