我遇到了这个问题,我不知道如何解决:
假设A(.)是一个子程序,它将二进制数作为输入,并取线性时间(即O(n),其中n是数字的长度(以位为单位)).考虑下面的一段代码,它以n位数x开头.
while x>1:
call A(x)
x=x-1
Run Code Online (Sandbox Code Playgroud)
假设减法在n位数上花费O(n)时间.
(a)内循环迭代多少次(作为n的函数)?以大O形式留下你的答案.
(b)大O形式的总运行时间(作为n的函数)是多少?
我的猜测是(a)是O(n ^ 2),(b)是O(n ^ 3).它是否正确?我正在考虑的方式是循环每次循环时必须计算两个步骤,并且每次从n位减去1直到x达到0时循环通过x时间.对于部分b,因为A(.)花费时间O(n)我们将它与执行循环所花费的时间相乘,然后我们就有了所有的运行时间.我的分析是否正确?
有谁知道这里描述的网络爬虫是使用深度优先搜索还是广度优先搜索?我的直觉说这是广度优先搜索,但我不是 100% 确定这一点。
另外,网络爬虫使用这些搜索方式(特别是使用递归)是否很常见?
我不明白为什么我的花车的地址上升了16,当我的花车的大小是4.有人可以解释一下吗?
码:
char* mychar = new char[SIZE];
float* myfloat = new float[SIZE];
for(int i = 0; i < SIZE; i++)
{
mychar[i] = 'A' + i;
myfloat[i] = 101 + i;
}
for(int i = 0; i < SIZE; i++)
{
cout << setw(12) << "new char @ <" << static_cast<void*>(mychar) + sizeof(char)*i << ">=<" << mychar[i] << ">"
<< setw(14) << " new float @ <" << myfloat + sizeof(float)*i << ">=<" << myfloat[i] << ">\n";
}
cout<< "Size …Run Code Online (Sandbox Code Playgroud) 有没有一种方法可以在另一个向量的末尾添加一个向量?例如,如果我的向量是
std::vector<int> v1(3);
std::vector<int> v2(3);
/* ... initialize vectors ... */
/* ... for example, v1 is 1 2 3 and v2 is 4 5 6 ... */
Run Code Online (Sandbox Code Playgroud)
这是最聪明的方式添加v2到最后v1(即获得v1= 1 2 3 4 5 6)而不使用循环和push_back?
如何设计一个有很多(无限数量)分支的树?
我们应该使用哪种数据结构来存储子节点?
我是c +的新手,并试图创建一个汽车类程序,要求用户一年和汽车制造.然后程序采取速度,始终从0开始,加速5mph 5次,并以5英里/小时制动5次.我必须使用头文件和2个cpp文件创建程序.速度的返回值不正确,并显示为:
输入汽车年份:2000输入汽车品牌:雪佛兰起始速度为-858993460
目前的速度是:-858993455英里每小时.
目前的速度是:-858993450英里每小时.
目前的速度是:-858993445英里每小时.
目前的速度是:-858993440英里每小时.
目前的速度是:-858993435英里每小时.
目前的速度是:-858993440英里每小时.
目前的速度是:-858993445英里每小时.
目前的速度是:-858993450英里每小时.
目前的速度是:-858993455英里每小时.
目前的速度是:-858993460英里每小时.
按任意键继续 ...
任何人都可以帮我弄清楚我做错了什么?到目前为止,我已经附上了我的内容.任何帮助是极大的赞赏.谢谢
#define CAR_H
#include <string>
using namespace std;
class Car
{
private:
int yearModel;
string make;
int speed;
public:
Car(int, string);
void accelerate();
void brake();
int getSpeed ();
};
#include <iostream>
#include "Car.h"
using namespace std;
Car::Car(int carYearModel, string carMake)
{
int yearModel = carYearModel;
string make = carMake;
int speed = 0;
}
void Car::accelerate()
{
speed += 5;
}
void Car::brake()
{ …Run Code Online (Sandbox Code Playgroud) 我知道后缀数组本身的定义是它是一个字符串所有后缀的排序数组.但我试图了解这种排序操作的重要性在这里?假设我们创建了一个包含字符串所有后缀的数组,并选择不对其进行排序并继续构建LCP数组,当我们尝试解决诸如Longest Palindromic子字符串之类的常见问题时,我们在这种情况下会松动什么呢?最长的重复子串?
证明给定图 G 和数字 k,有某种方法可以将其转换为图 H,使得 G 具有大小至少为 k 的独立集合,当且仅当 H 具有大小至少为 k 的团伙时。
所以我不得不用一个Point类创建一个程序,它需要多少维度,然后我在类中设置了一个带有如此多坐标的funktion,并且这样做我必须创建一个动态数组,因为它的大小不是'固定的.
class Punkt
{
private:
char n;
int d;
double* k = new double[d];
public:
Punkt(int);
void Name(char);
void Initialisieren();
~Punkt();
};
Run Code Online (Sandbox Code Playgroud)
这是定义这些函数的地方:
Punkt::Punkt(int dimension)
{
d = dimension;
}
void Punkt::Name(char name)
{
n = name;
}
void Punkt::Initialisieren()
{
for (int i = 0; i < d; i++) {
cout << "Geben sie bitte die " << i + 1 << ". Koordinate von " << n << " ein: ";
cin >> k[i];
cout << endl;
} …Run Code Online (Sandbox Code Playgroud) 所以这可能很愚蠢,但我坚持这个递归T(n) = 5T(n/2) + O(nlogn).我从大师定理中知道它应该是
,但我真的无法到达那里.
到目前为止,我得到了一点
我只是想知道我是否正朝这个方向前进
algorithm ×4
c++ ×4
big-o ×2
math ×2
arrays ×1
binary-tree ×1
destructor ×1
graph ×1
java ×1
np ×1
pointers ×1
recurrence ×1
return-value ×1
sorting ×1
string ×1
suffix-array ×1
tree ×1
vector ×1
web-crawler ×1