并行高性能计算——递归查找最大值

#include<iostream>
using namespace std;
int maxi(int A[],int low,int high){
    if(low==high)
        return A[low];
    int low_max=maxi(A,low,(low+high)/2);
    int high_max=maxi(A,(low+high)/2+1,high);
    if(low_max>high_max)
        return low_max;
    else
        return high_max;
}
int main(){
    int A[]={5,10,9,7,2,13,8};
    int low=0;
    int high=6;
    int max=maxi(A,0,6);
    cout<<max<<endl;
    return 0;
}

时间复杂度:T(n)=2T(n/2)+c=4T(n/4)+2c+c=...=2lgnT(n/2lgn)+c(20+21+...+2lgn-1)=nT(1)+c(1-2lgn)/(1-2)=n+c(n-1)=θ(n)

posted @ 2013-09-20 10:14  开心成长  阅读(428)  评论(0编辑  收藏  举报