时间复杂度怎么计算?
查看原帖
时间复杂度怎么计算?
1035847
Tomatos03楼主2023/11/6 12:40

下面这两段代码的时间复杂度分别是多少?如何得出这个计算结果的?

第一段

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int o = Integer.parseInt(in.readLine());
		System.out.println(divide(o));
		in.close();
	}

	static public int divide(int n) {
		if (n == 1) return 1;
		int result = 0;
		for (int i = n / 2; i > 0; --i) {
			result += divide(i);
		}
		return result + 1;
	}
}

第二段

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    static int[] memory = new int[1001];

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int o = Integer.parseInt(in.readLine());
        System.out.println(divide(o));
        in.close();
    }

    static public int divide(int n) {
        if (n == 1) return 1;
        if (memory[n] != 0) return memory[n];
        int res = 0;
        for (int i = n / 2; i > 0; --i) {
            res += divide(i);
        }
        return memory[n] += res + 1;
    }
}
2023/11/6 12:40
加载中...