设置:
假设E[1 .. n]是一个n不同数字的数组。
设i,j为数组 E 中元素的索引。
如果1 ? i < j ? n和E[i] > E[j],则这对索引(i, j)称为数组 E 的反转。
问题:
在具有集合元素的所有数组中{1, 2, …, n}:
1. 哪个数组的反转最多?
2. 它有多少个反转?
我的想法:
我最初的想法是,如果数组元素按顺序排列,是否意味着数组已排序,因此反转计数为0?如果数组按降序排序,则反转计数是最大值,因此第一个元素应该具有 n-1 反转,第二个是 n-2 反转,直到最后一个元素,2 具有 1 个反转计数。所以我加起来 (n-1) + (n-2) + (n-3) +...+ 1 = n(n-1)/2。我想问一下这个问题问有什么命令吗?我的想法正确吗?我该如何解决?
我可以知道verilog中这个符号>>>是什么吗?我应该什么时候使用它?谢谢!
例如
always @(posedge Clock) begin
if (Clear) begin
a < = c>>>8;
b < = d>>>16;
end
end
Run Code Online (Sandbox Code Playgroud)