public void mergeSort(int[] q,int l,int r){
if(l>=r) return;
int mid = l + r >> 1;
mergeSort(q,l,mid);
mergeSort(q,mid+1,r);
int i = l,j=mid+1,k=0;
int temp[] = new int[r-l+1];
while(i<=mid && j<=r){
if(q[i]<=q[j]) temp[k++] = q[i++];
else temp[k++]= q[j++];
}
while(i<=mid) temp[k++] = q[i++];
while(j<=r) temp[k++] = q[j++];
for(i =l,j=0;i<=r;i++,j++){
q[i] = temp[j];
}
}
简单总结:
时间复杂度 最好情况:O(nlogn)
最坏情况:O(nlogn)
平均情况O(nlogn)
空间复杂度O(n)
稳定性:稳定
网友评论