H编码问题:
设有N个信号,u1,u2,u3,u4,u5,u6------un,且满足
u1+u2+u3----+un=1;
编程实现对各个信号的编码:
(1)首先将N个信号按值排序
(2)将最小的两个信号合并成一个信号(相加合并),从而将N个信号缩减为N-1个信号
(3)将缩减后的信号仍然按值排序,然后再将最小的两个合并,这样又缩减为N-2个信号
(4)以此类推,直至剩下一个信号为止(最后累加的信号值为1)
(5)将每次合并的两个信号分别用0和1标志
(6)从最后一级开始,向前返回,就得出各个信号在这组信号流中的编码
详细图示看上传的图片,
小生主要不知道中间生成的那些缩减后数组该怎么办(我是用数组生成各个信号值的)
对这些缩减后的数组再重新排序的以后就找不到对应关系了,
求编码的时候就回不去了,
跪求各位大虾帮忙看下,感激不尽。只需稍微指点下算法就行了。
对了,我苦思好几天,是不是应该用递归,或是双向链表解决啊!
先谢谢各位了