最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 【选择题】最好最坏时间复杂度习题

    正文概述 陈老师   2026-01-20 15:40:06  

    最好时间复杂度

    1.1. 观察下面的代码,请问它的最好时间复杂度是多少?

    int func(int n,int m){
        for(int i = min(n,m) ; i >= 1 ; i--){
            if(n % i == 0 && m % i == 0)
                return i;
        }
        return - 1;
    }
    

    {{ select(1) }}

    • O(nm)O(nm)
    • O(n)O(n)
    • O(n2)O(n ^ 2)
    • O(1)O(1)

    2.2. 观察下面的代码,请问它的最好时间复杂度是多少?

    void bubbleSort(int arr[], int n) {
        for (int i = 0; i < n - 1; i++) {
            bool flag = true;
            for (int j = 0; j < n – i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    flag = false;
                    swap(arr[j], arr[j + 1]);
                }
            }
            if(flag)break;
        }
    }
    

    {{ select(2) }}

    • O(1)O(1)
    • O(n2)O(n^2)
    • O(n)O(n)
    • O(logn)O(logn)

    最坏时间复杂度

    1.1. 观察下面的代码,请问它的最坏时间复杂度是多少?

    int func(int n,int m){
        if(n < m)swap(n,m);//保证n大于m
        for(int i = n ; i >= 1 ; i--){
            if(n % i == 0 && m % i == 0)
                return i;
        }
        return - 1;
    }
    

    {{ select(3) }}

    • O(1)O(1)
    • O(n2)O(n^2)
    • O(n)O(n)
    • O(logn)O(logn)

    2.2. 观察下面的代码,请问它的最坏时间复杂度是多少?

    void bubbleSort(int arr[], int n) {
        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n – i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    swap(arr[j], arr[j + 1]);
                }
            }
        }
    }
    

    {{ select(4) }}

    • O(1)O(1)
    • O(n2)O(n^2)
    • O(n)O(n)
    • O(logn)O(logn)
    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » 【选择题】最好最坏时间复杂度习题