count-merge.h
来自「算法类」· C头文件 代码 · 共 37 行
H
37 行
inline void COUNT_MERGE(int* A,int p,int q,int r,int& count){ int* array1=new int[q-p+1]; int* array2=new int[r-q]; const int count1=q-p+1; const int count2=r-q; for(int i=p;i!=q+1;++i) array1[i-p]=A[i]; for(int i=q+1;i!=r+1;++i) array2[i-q-1]=A[i]; int j=0,k=0; for(int i=p;i!=r+1;++i) { if(j == count1) { A[i]=array2[k]; ++k; } else if(k == count2) { A[i]=array1[j]; ++j; } else if(array1[j] >= array2[k]) { A[i]=array2[k]; count+=count1-j; ++k; } else { A[i]=array1[j]; ++j; } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?