二分归并排序
问题
对n个不同的数构成的数组A[1…n]进行排序,其中n=2^k
解析
设计
int erfen(int x,int a[n])
{
int l=1,r=n;
while(l<=r)
{
int m=floor((l+r)/2.0);
if(a[m]==x)
return m;
else if(a[m]>x)
r=m-1;
else
l=m+1;
}
return 0;
}
分析
算法复杂度为O(n log n)
源码
https://github.com/adamlallana77/-/blob/master/%E4%BA%8C%E5%88%86%E6%B3%95.cpp