侧边栏壁纸
博主头像
winson的blog博主等级

行动起来,活在当下

  • 累计撰写 31 篇文章
  • 累计创建 37 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

算法小计

winson
2024-04-08 / 0 评论 / 1 点赞 / 47 阅读 / 3160 字

算法考点

二分查找

概念:

二分查找是一种算法思想,当去查找范围内的一个数时,往往从中间开始,若中间数字比目标数字小,则从左边区间的中间位置为基点查找,反之,从右边区间查找,以此类推,查找到相应值。

时间复杂度:O(log₂(n))

大O表示法

算法的复杂段表现为T(n)=O(f(n)),其中O的含义是T(n)的数量级

渐近的时间复杂度

O(1)<O(log_2n)<O(n)<O(nlog_2n)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)

f

  • O(1)

    int result = arr[2];
    
  • O(log⁢₂n)

    for(int i = 1 ; i < n; i++){
        i *= 2;
    }
    
  • O(n)

    for(int i = 0; i < n; i++);
    
  • O(nlog⁢₂n)

    int count = 0;
    for(int i = 1 ; i <= n; i*=2){
        for(int j = 1; j <= n; j++){
            count++;
        }
    }
    
  • O(n²)

    int count = 0;
    for(int i = 1 ; i <= n; i++){
        for(int j = 1; j <= n; j++){
            count++;
        }
    }
    
  • O(n³)

    int count = 0;
    for(int i = 1 ; i <= n; i++){
        for(int j = 1; j <= n; j++){
            for(int k = 1; k <= n;k++){
                count++;
            }
        }
    }
    
  • O(2ⁿ)

    		int n = set.length;
            for (int i = 0; i < n; i++) {
                n >> 1; 
                for(int j = 0;j < n;j++);
            }
    
  • O(n!)

    	for (int i = 1; i <= n; i++) {
                for (int j = 1; j <= i; j++) {
                    result *= j;
                }
            }
    
  • O(nⁿ)

            for (int i = 1; i <= n; i++) {
                for (int j = 1; j <= Math.pow(n, i); j++) {
                    System.out.println("i = " + i + ", j = " + j);
                }
            }
    
1

评论区