Algorithm 这两个函数的Big-O

Algorithm 这两个函数的Big-O,algorithm,loops,recursion,big-o,time-complexity,Algorithm,Loops,Recursion,Big O,Time Complexity,有人能帮我找到这两个函数的Big-O吗: int sum(int A[], int i, int n) { if (n == 1) return A[i]; return sum(A, i, n/2) + sum(A, i + n/2, (n+1)/2); } 以及“排序”功能: void swap(int& a, int& b) { int temp = a; a = b; b = temp; } void swapM

有人能帮我找到这两个函数的Big-O吗:

int sum(int A[], int i, int n) {
    if (n == 1)
        return A[i];
    return sum(A, i, n/2) + sum(A, i + n/2, (n+1)/2);
}
以及“排序”功能:

void swap(int& a, int& b) {
    int temp = a;
    a = b;
    b = temp;
}

void swapMin(int A[], const int& index) {
    int indexMin = index;
    for (int i = index-1; i >= 0; --i)
        if (A[i] < A[indexMin])
          indexMin = i;

    swap(A[index], A[indexMin]);
}

void sort(int A[], int n) {
    for (int i = n-1; i >= 0; --i)
        swapMin(A, i);
}
无效掉期(内部和a、内部和b){
内部温度=a;
a=b;
b=温度;
}
void swapMin(整数A[],常数整数和索引){
int indexMin=索引;
对于(int i=index-1;i>=0;--i)
if(A[i]=0;--i)
swapMin(A,i);
}

我相信第一个是O(1),第二个是O(n),但我不确定这是否正确。

对于第一个函数,您可以这样做:

然后你可以用生成函数求解它

对于第二种,您可以使用Sigma表示法:


你必须问一个更精确的问题——StackOverflow不是让别人为你工作;描述你尝试了什么,以及你被困在哪里。第一个是O(n-i),第二个是O(n^2)