【发布时间】:2015-11-26 19:37:53
【问题描述】:
出于学习目的,我想创建自己的插入排序实现。 正如您现在可能看到的,其中一个步骤需要将数组元素向右移动 1。这里的主要困难是此操作的范围必须是动态的。
所以如果 sort_reg 是从 0 到 array_length 的数组,我需要实现 sort_reg(n)=i>=1,其中 m 范围的起始数组索引,从范围 (m 到 n-1) 到 (m+1 到 n) 将右移 1。
问题是是否有可能一步完成,然后怎么做?
【问题讨论】:
-
请说明哪个范围必须是动态的,
n或m或两者兼而有之? -
是的,我可能不够清楚,两者都需要是动态的。 m 是被移动成员的目标索引。这就是插入排序的工作原理:找到小于当前位置 m 的第一个成员 n 并在 m (n>m )。对于从 m 到 n-1 的鱼群范围,必须将其移动到 m+1 到 n。还忘了提到必须在 Xilinx Vivado 下为 Zynq 设备合成
-
知道了。我扩展了我的例子。它与 Quartus-II 合成,但我无法检查它是否适用于 Vivado。
标签: arrays vhdl insertion-sort