Я новичок в изучении предмета под названием «Алгоритмы и структуры данных» и дошел до части о нотации Big-O.Я читал много разных материалов, пишущих об этом, но большинство из них просто показывают примеры вычисления простых случаев.
У задания для этой темы есть несколько действительно интересных сложных примеров с рекурсией, вызывающей друг друга и для циклов, в то время как циклыи т. д. ... что я не мог понять и нужна помощь в расчете.Я действительно ценю любую помощь и объяснение, чтобы глубоко понять это.
Также: Пример № 3: Я не понимаю, что означает возвращение "0xCAFE + 0xBABE + s"?Я не мог видеть, чтобы он где-то появлялся в методе, действительно странном для меня.
Пример № 4: Сначала я подумал, что это разные примеры, но я заметил, что в методе g есть вызов метода f, поэтомудолжно быть в одном примере, верно ли мое предположение?
1.
long c(int x) {
if (x <= 1) {
return 1;
} else {
long s = 0;
for (int i = 1; i < x; i++) {
s = s + c(x - 1);
}
return s;
}
}
2.
long d(int x) {
long s = -x * x;
while (s <= x * x * x) {
s++;
}
for (long i = s * x; i > 0; i--) {
s--;
}
return s;
}
3.
double e(long x, long y) {
double s = 0_0;
for (int i = 1; i <= x; i *= 2) {
for (double j = x; j >= 1; j /= 3) {
for (int k = 0; k < y; k += 4) {
s++;
}
}
}
return 0xCAFE + 0xBABE + s;
}
4. Рассчитать каждый F & G
long f(int x, int y) {
if (x <= 0) {
return y;
} else {
return f(x - 1, 2 * y);
}
}
double g(int x, int y) {
double s = 0.0D;
for (long i = f(x, y); i >= 0; i--) {
s++;
}
return s;
}
5.
char h(int x) {
char h = 'h';
for (long i = h; i-- > ++i; x--) {
h++;
}
return h;
}