假如有一个长度为n的序列S,从S0 ~Sn-1中的S0开始连续取N个元素,求得这N个元素的中值m0 。然后从S1开始连续取N个元素,求得中值m1 。如此类推,直到得到最后一组元素Sn-m+1 ~Sn的中值mn-m+1 。则序列m0 ~ mn-m+1为序列S的中值序列,即基线序列。原S序列中的元素减去中值序列m中对应的元素得到的序列就是去基线后的序列。
按位比较法求中值原理:
有N个位数为M的无符号二进制数求他们中的中值
1. 统计这N个数的最高(M-1)位 0、1的个数分别为num0_M-1、num1_M-1. 若num0_M-1 > N/2 则可以判断中值在 M-1位为0的数 中。
并且可以判断这N个位数按从左到右从小到大的顺序有 add_R = num1_M-1 个 M-1位为1的数 比中值大在中值右侧。
2. 在1.中判断出的 num0_M-1 个M-1位为0的数中继续统计其第M-2位 0、1的个数分别为num0_M-2、num1_M-2.
若num0_M-2 < N/2 则可以判断中值在M-1位为0、M-2为1的num1_M-2个数中。并且可以判断add_L = num0_M-2 个 M-2位为0的数 比中值小在中值左侧。