小编mar*_*gor的帖子

在线性空间中存储成对和

如果我们有两个大小为n的数组并且想要对它们的和进行排序,那么天真的方法是将它们的和存储在O(n ^ 2)空间中并在O(n ^ 2 logn)时间内对其进行排序.假设我们被允许具有相同的O(n ^ 2 logn)运行时间,我们如何将总和存储在O(n)的线性空间中?

我想我们并不打算存储所有的金额,因为它们n ^ 2个元素不适合n个空格,而且我们只是按排序顺序打印出所有内容,所以这是否意味着我们必须动态存储项目?有小费吗?

(这是作业问题)

arrays sorting algorithm big-o asymptotic-complexity

10
推荐指数
1
解决办法
195
查看次数

使用NOT EXISTS获得所有贷款的借款人

我想找到所有贷款类型的借款人.

架构:

loan (number (PKEY), type, min_rating)
borrower (cust (PKEY), no (PKEY))
Run Code Online (Sandbox Code Playgroud)

样本表:

number | type     | min_rating
------------------------------
L1     | student  | 500
L2     | car      | 550
L3     | house    | 500
L4     | car      | 700
L5     | car      | 900

cust  | no 
-----------
Jim   | L2
Tom   | L1
Tom   | L2
Tom   | L3
Tom   | L4
Tom   | L5
Bob   | L3
Run Code Online (Sandbox Code Playgroud)

这里的答案是"汤姆".

我可以简单地计算贷款总数,并将借款人的贷款数量与之比较,但我不允许(这是一项家庭作业),为了这个家庭作业和学习的目的.

我想使用双重否定,我首先找到没有获得所有贷款的借款人,并找到那些不在那里的借款人.我想NOT EXISTS在我第一次找到没有拿到所有贷款的借款人的地方使用嵌套,但是我无法为此创建一个有效的查询.

sql sqlite relational-division

6
推荐指数
1
解决办法
649
查看次数

返回在列中具有相同确切项的不同名称对

我想在表中找到不同的名称对,它们在items列中具有相同的确切项.例如:

CREATE TABLE t
(
    name    VARCHAR(255),
    item    VARCHAR(255)
);

INSERT INTO t VALUES("Alice", "Orange");
INSERT INTO t VALUES("Alice", "Pear");
INSERT INTO t VALUES("Alice", "Lemon");
INSERT INTO t VALUES("Bob", "Orange");
INSERT INTO t VALUES("Bob", "Pear");
INSERT INTO t VALUES("Bob", "Lemon");
INSERT INTO t VALUES("Charlie", "Pear");
INSERT INTO t VALUES("Charlie", "Lemon");
Run Code Online (Sandbox Code Playgroud)

这里的答案是Alice,Bob因为他们采用完全相同的项目.

我想用双重否定(使用NOT EXISTS/NOT IN)来做这件事我认为更适合这个问题,但我无法想出任何远离功能的东西.

这有点类似于这个问题,但我使用SQLite,所以我不能使用GROUP_CONCAT(),但我想知道如何使用NOT EXISTS/NOT IN使用关系除法.

sqlite relational-division

6
推荐指数
1
解决办法
464
查看次数

乘以/添加初始数以获得目标数

假设我有一个目标数n如5,我总是从1号开始,我得*2*3+1到它,直到我到达n.所以在这种情况下,我会*2两次,然后+1获得5.

我应该找到达到目标值的最少操作次数.我看到一个类似的问题正在发布,但这需要一定数量的步骤,而我必须找出最少的步骤.有关如何解决这个问题的提示吗?

这是一个家庭作业问题.

algorithm

5
推荐指数
1
解决办法
3927
查看次数

基数排序说明

基于这个基数排序文章http://www.geeksforgeeks.org/radix-sort/我正在努力理解在排序中某些方法的时间复杂性方面正在解释什么.

从链接:

让输入整数有d位数.基数排序采用O(d*(n + b))时间,其中b是表示数字的基数,例如,对于十进制系统,b为10. d的值是多少?如果k是最大可能值,则d将是O(log_b(k)).因此总体时间复杂度为O((n + b)*logb(k)).对于大k来说,这看起来不仅仅是基于比较的排序算法的时间复杂度.让我们先来限制k.设k≤nc,其中c是常数.在这种情况下,复杂性变为O(nlogb(n)).

所以我确实理解排序需要O(d*n),因为有d个数字因此d遍,你必须处理所有n个元素,但我从那里丢失了它.一个简单的解释将非常有用.

sorting algorithm asymptotic-complexity radix

4
推荐指数
1
解决办法
341
查看次数

寻找图的半径

图G的半径由图中节点的最小偏心率定义.我需要什么样的算法才能解决这个问题?

使用Floyd-Marshall算法找到图的直径,我想知道我在上述算法中使用的n*n距离数组是否也可用于找到半径.

algorithm graph

2
推荐指数
1
解决办法
1664
查看次数

包含所有ASCII字符的二进制文件

是否有包含所有256个ASCII字符的二进制文件(.dat文件)?我想在我的霍夫曼压缩算法上测试它.

通常使用像vim这样的文本编辑器创建文件时,我将无法添加像控制字符等奇怪的字符.我想知道是否有人知道是否有这样的文件可以使用或者我是否可以制作一个我.

c++ binary vim ascii

1
推荐指数
1
解决办法
776
查看次数

当我们将char转换为大于256的数字时会发生什么?

我创建了一个可以创建256个唯一符号的程序,它工作正常.它通过写入二进制(1-2)的(char)演员来工作.但是如果我决定将(char)257打印到文件,该文件仍然有256个唯一符号.当我cout(char)257时,我在屏幕上看不到任何内容.这只是一个空洞的角色还是实际上指向某个东西?

此外,如果ASCII是128个字母,你会称这个术语为256个字符?UTF-8?

c++ casting

1
推荐指数
1
解决办法
1137
查看次数