归并排序的模板
2013-10-27 14:51
141 查看
//A为要进行排序的数组,T为临时数组,排序结束时两个数组中的元素相同 //cnt统计逆序数的个数 void merge_sort(int *A, int x, int y, int *T) { if(y-x > 1) { 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 < m || q < y) { if(q >= y || (p < m && A[p] <= A[q])) T[i++] = A[p++]; else { T[i++] = A[q++]; cnt += m-p; } } for(i = x; i < y; i++) A[i] = T[i]; } }
相关文章推荐
- 求逆序对模板题(完善模板:树状数组或归并排序)
- 归并排序模板
- 归并排序 与 快排 模板
- 归并排序求逆序数模板
- poj 2299 归并排序求逆序数 (可做模板)
- c++模板实现归并排序
- 「模板」 归并排序
- POJ2299 Ultra-QuickSort (归并排序求逆序数模板)
- 归并排序模板
- 归并排序模板
- 通用算法模板:归并排序求逆序对
- c/c++之模板方法实现归并排序
- (模板题)sdut 3402 数据结构实验之排序五:归并求逆序数(归并排序)
- HDU3743(归并排序模板题)Frosh Week
- 个人模板 归并排序
- 记一个简洁的归并排序实现模板
- 归并排序模板
- 归并排序模板 && 求逆序数
- poj 2299 Ultra-QuickSort 归并排序(求逆序数模板)
- 【排序算法模板】归并排序