问题标签 [lexicographic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sorting - 按字典顺序排列矩阵的复杂性
m
给定一个具有行和列的矩阵n
,其中每个条目由一对(a,b)
整数组成。没有一对在矩阵中出现两次。
我们现在想对这些对进行排序,这样对于同一行中的两个对(a,b)
,(c,d)
我们有该对位于当且仅当(a,b)
的左侧,即如果该对根据其条目按字典顺序排列。此外,对于同一列中的两对,当且仅当。(c,d)
((a < c) or (a=c and b < d))
(a,b)
(c,d)
(a,b)
(c,d)
((b < d) or (b=d and a < c)
如果我们找到一个所有行和列都满足上述条件的位置,我们称之为稳定。
通过首先根据行条件对所有对进行排序,很容易获得稳定的放置,这需要O(mn log(mn))
时间。然后将此列表拆分为 m 个部分p_1,...,p_m
(现在每个部分包含 n 个元素,并且对于每个(a,b)
in p_i
,(c,d)
in p_j
it is (a,b) < (c,d) if i < j
)。现在p_i
根据列条件对每个部分进行排序,O(n log(n))
每个部分,即O(mn log(n))
所有部分。将已排序的部分p_i
写入列i
可提供稳定的位置。
现在考虑特殊情况m=n
,N=n²
。有了上面的论点,我们得到一个稳定的位置可以及时获得O(N log(N))
,这给出了一个上限。现在这提出了一个问题:
这个问题的下限是多少?是O(N log(N))
最优的吗?
python - 如果按字典顺序输入三个单词,则创建一个打印 true 的程序
我正在尝试创建一个程序,询问用户三个单词并在单词按字典顺序输入的情况下打印“True”。例如:
到目前为止,这是我的代码:
list - 使用约束按字典顺序排列两个变量列表
我正在尝试使用其 CLP(FD) 在 BProlog 中实现字典排序约束。
据我从手册中可以看出,BProlog 没有提供内置lexLeq
约束(尽管此全局约束存在有效的传播算法),所以我尝试编写自己的并将排序表示为以下集合二元约束:
为了表达(A1 #/\ A2 #/\ ... #/\ AN) => AN+1
我认为我应该能够具体化Ai
s 的约束,所以:
然后我收集B
s 并检查连接是否有效,我只需这样做:
这个想法导致了以下(可能非常丑陋)的代码:
这部分有效:
如您所见,产生的所有解决方案都满足约束。问题是并非所有有效的解决方案都产生了。似乎我所描述的约束也以某种方式暗示了这一点X1 #>= X2 #>= ... #>= XN
或类似的东西,因此所有变量都是0
or 1
,而上面的查询也应该返回类似[0,1,0]
vs[0,1,0]
或[0,0,0]
vs的解决方案[0,1,0]
。
那么,我的推理有问题还是上述定义中有错误?
java - 我如何在java上按字典顺序读取类属性(成员)?
我正在尝试使用 swt 构建输入对话框。我想阅读我的类属性并按指定顺序甚至字典顺序制作对话框窗口。我会将我的类属性保存在linkedhahmap\treemap 中。
例子:
输出不是类属性顺序,它类似于
java - 我是否正确地按字典顺序比较字符串?
我正在创建一种compareTo(AltString altStr2)
按长度(最短到最长)对字符串进行排序的方法。
但是,我想加倍努力并检查长度相同的字符串。在这种情况下,我认为最好按字典顺序对字符串进行排序,以便它们的排序方式与它们在字典中出现的方式相同。到目前为止,我的代码如下。
我必须坚持的部分是按字典顺序比较字符串。目前,我有我的代码设置,以便我进入一个while循环并比较每个字符。
我的问题是,这是最有效的方法吗,或者在字符串长度相同的情况下,是否有更好的方法来按字典顺序比较每个字符串?
java - 获取下一个字典字符
有没有一种java字符的方法可以按字典顺序返回下一个字符?
'a'.next()
会回来b
的。'b'.next()
会回来c
的。等等
c++ - 删除重复项后选择字典最小的字符串
从字符串中删除所有重复项并选择可能的字典最小字符串。例如,字符串 cbacdcbc 将返回 acdb,而不是 adcb。
因此,如果我们不必选择字典最小的字符串,这有一个相对简单的解决方案,但考虑到这一事实,我不确定如何找到一个有效的解决方案。这是我到目前为止所拥有的:
c - 搜索二叉树 C、字典顺序、下一个排列、递归
我有一个家庭作业,完成了大部分工作,但我被困在一个点上。我必须搜索一棵二叉树并找到一个关键字,如果关键字没有出现,我必须在树上找到按字典顺序排列的下一个字符串,女巫以我想要查找的关键字作为前缀,直到没有其他字符串满足以前的标准。
下面的代码用于在我没有找到确切的单词后进行搜索。
例子
如果我有话说:tree traversal trees
如果我搜索:“tr”
我只得到遍历。
遍历原因是一片叶子后,我不能向左或向右走,而且我也找不到出现树和树的方法。
我已经尝试了一些事情,但没有成功,所以现在我问你,除此之外,我什至不知道如何处理字典顺序的 next 关键字或我必须用它做什么!
任何帮助表示赞赏!:D
r - 在 data.table 中创建按字典顺序排序的对
我怎样才能有效地将两个键列绑定到一个单列对中,以保留两个键的字典顺序?我有兴趣将“loc”用作单个(排序)变量
python - 旋转一个字符串并打印出字典上最大的旋转
代码运行良好,但效率非常低。
有没有更省时的方法来解决问题?