Simple Time Complexity Big O Notation


import org.junit.Test;

/**
 * 时间复杂度计算
 * 算法摘抄自书籍和网络,这玩意,做多了就有感觉了,^.^
 * @author RippleChan
 * @date 2018-01-27
 * @time 21:57
 */
public class BigO {

    /**
     * O(1)
     */
    public void test1() {
        int n = 1;
        int b = n + 1;
    }

    /**
     * O(n)
     */
    public void test2() {
        int n = 100;
        for (int i = 0; i < n; i++) {
            //程序运行n次
        }
    }

    /**
     * O(logn)
     */
    @Test
    public void test3() {
        int n = 100;
        int count = 1;
        while (count < n) {
            count = count * 2;
            System.out.println(count);
        }
    }

    /**
     * O(n2)
     */
    @Test
    public void test4() {
        int n = 2;
        for (int i = 0; i < n; i++) {
            for (int j = 0;j<n;j++) {
                System.out.println("test");
            }
        }
    }

    /**
     * O(m*n)
     */
    @Test
    public void test5() {
        int n = 2;
        int m = 3;
        for (int i = 0;i<n;i++) {
            for (int j = 0; j < m; j++) {
                System.out.println("test");
            }
        }
    }

    /**
     * O(n2)
     */
    @Test
    public void test6() {
        int n = 5;
        for (int i = 0; i < n; i++) {
            for (int j = i; j < n; j++) {
                System.out.println("test");
            }
        }
    }

    /**
     * O(n)
     */
    @Test
    public void test7() {
        int n = 100;
        for (int i = 0;i<n;i++) {
            this.function7(i);
        }
    }

    private void function7(int i) {
        System.out.println(i);
    }

    /**
     * O(n)
     */
    @Test
    public void test8() {
        int n = 100;
        for (int i = 0; i < n; i++) {
            this.function8(n);
        }
    }

    private void function8(int n) {
        for (int j = 0;j<n;j++) {
            System.out.println(j);
        }
    }

    /**
     * O(n3)
     */
    @Test
    public void test9() {
        int n = 100;
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                for (int k = 1; k <= j; k++) {
                    System.out.println("test");
                }
            }
        }
    }

    /**
     * O(log n)
     */
    public void test10() {
        int i = 0;
        i = i + 1;
        int n = 100;
        while (i <= n) {
            i = i * 2;
        }
    }

    /**
     * O(n)
     */
    @Test
    public void test11() {
       int i = 1;
       int k = 0;
       int n = 100;
        while (i <= n - 1) {
            k += 100 * i;
            i++;
        }
    }

    

}

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324927645&siteId=291194637