資料結構 時間複雜度 空間複雜度 一看就懂版本
阿新 • • 發佈:2019-01-05
時間複雜度
時間複雜度簡單的理解就是執行語句的條數。如果有迴圈和遞迴,則忽略簡單語句,直接算迴圈和遞迴的語句執行次數。
比如:
- int x = 1;//時間複雜度為O(1)
- for(int i=0; i<n; i++) {
- System.out.println(i);
- }//時間複雜度為O(n)
1、O(1)
- int x = 1;
2、O(n)
- for(int i=0; i<n; i++) {
- System.out.println(i);
- }
3、O()
-
int n = 8, count =
- for(int i=1; i<=n; i *= 2) {
- count++;
- }
4、
- int n = 8, count = 0;;
- for(int i=1; i<=n; i++) {
- for(int j=1; j<=n; j++) {
- count++;
- }
- }
5、
- int n = 8, count = 0;;
- for(int i=1; i<=n; i *= 2) {
- for(int j=1; j<=n; j++) {
-
count++;
- }
- }
所舉例子都比較簡單。
空間複雜度
空間複雜度也很簡單的理解為臨時變數佔用的儲存空間。一個簡單例子:
- //交換兩個變數x和y
- int x=1, y=2;
- int temp = x;
- x = y;
- y = temp;