c++面接で習得しなければならないアルゴリズム(継続的な更新)

1073 ワード

1.          O(nlogn)     O(n)   
void merge_sort(int *A,int x,int y,int *T)    //   A [x,y)     T     
{
    if(y-x>=2)    //          
    {
        int m=x+(y-x)/2;                    //     
        int p=x,q=m,i=x;
        
        merge_sort(A,x,m,T);                //       
        merge_sort(A,m,y,T);        
        
        while(p=y||(p
2.          O(nlogn)     O(logn)    
void QuickSort(int A[],int p,int r)        //   A [p,r]
{
    if(pkey)        ;    //   
        if(i>=j)
            break;
        swap(A[i],A[j]);
    }
    swap(A[j],A[p]);
    return j;
}
3.    
int bsearch(int *A,int x,int y,int v)    //     A [x,y)   v
{
    int m;
    while(xv)
            y=m;    //[x,m)
        else
            x=m+1;    //[m+1,y)
    }
    
    return -1;    //    
}