小编zzu*_*zzu的帖子

(1/2)^n 的大 O 级

函数 (1/2)^n 属于哪个 Big O 类?

从纯粹的数学角度来看,我们似乎必须将其放入 O(1) 中,因为对于任何足够大的 n,1/2^n 都接近 0。

然而,当涉及到渐近分析和大O时,我们往往会做很多手把手的工作,并且还会回顾公式。1/2 从技术上讲是一个常数,因此看起来会落入 O(c^n) 的范围。

我倾向于 O(c^n) 因为在谈论算法时说“半个操作”是没有意义的。当输入变大时,什么算法需要一半的时间?充其量,我看到数学公式 (1/2)^n 指的是某个时间常数的一半 - 比如说一分钟。所以 (30 秒)^n 变成了一个巨大的数字,并且该函数显然属于 O(c^n) 。

一点帮助?

algorithm big-o asymptotic-complexity

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

在 fseek() 之前保留 FILE 指针的位置

我正在尝试编写一个 C 函数,该函数从文件中读取第一行文本,然后使用fseek()ftell()来获取文件其余部分的大小(文件减去第一行)。

我的想法是用一秒钟的时间FILE *fp1来获取原始文件的位置FILE *fp,并用 发送fp1到文件的末尾fseek(),这样我就不必移动原始文件fp并失去其位置。

这是我的代码。编译器告诉我不能分配fp1fp,因为fp1is aFILE*fpis a struct FILE*

我可以通过这种方式实现我想要做的事情吗?

 FILE *fp, fp1;
 fp = fopen(filename, "r");
 if (!fp)
     return 0;

 fscanf(fp, "%1d", m); //Lines 15-18 read the first line of the file
 fscanf(fp, "%*1c");
 fscanf(fp, "%1d", n);
 fscanf(fp, "%*1c");
 fp1 = fp;         //<---------- This is my problem.
                   //how do I set …
Run Code Online (Sandbox Code Playgroud)

c file-io fseek

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

Haskell:带有`newtype`的“多个”参数

免责声明:我对 Haskell 很陌生

我正在尝试基于设计在 haskell 中构建一个不透明的多态队列 ADT :

module Queue (Queue, empty, isEmpty, frontOf, enqueue, dequeue) where

data Queue a = Queue [a] [a] deriving Show

enqueue :: Queue a -> a -> Queue a
enqueue (Queue xs ys) y     = Queue xs (y:ys)

dequeue :: Queue a -> Maybe (Queue a)
dequeue (Queue [] [])       = Nothing
dequeue (Queue [] ys)       = dequeue (Queue (reverse ys) [])
dequeue (Queue (x:xs) ys)   = Just (Queue xs ys)
Run Code Online (Sandbox Code Playgroud)

但我正在尝试使用 …

haskell

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

标签 统计

algorithm ×1

asymptotic-complexity ×1

big-o ×1

c ×1

file-io ×1

fseek ×1

haskell ×1