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; //
}