【算法】归并排序(可求逆序数或逆序对)
2017-11-26 22:57
274 查看
int L[100010]; int R[100010]; void merge(int p[],int l,int mid,int r){ int len1 = mid - l; int len2 = r - mid; for(int i = 0;i < len1; i++){ L[i] = p[l+i]; } L[len1] = INF; for(int i = 0;i < len2; i++){ R[i] = p[mid+i]; } R[len2] = INF; int con1 = 0; int con2 = 0; for(int i = l;i < r; i++){ if(L[con1] < R[con2]){ p[i] = L[con1]; con1++; }else if(L[con1] > R[con2]){ p[i] = R[con2]; con2++; }else{ p[i] = L[con1]; con1++; } } } void mergeSort(int p[],int l,int r){ if(r - l > 1){ int mid = (l+r)/2; mergeSort(p,l,mid); mergeSort(p,mid,r); merge(p,l,mid,r); } }
l表示最左边的数的下标,r-1表示最右边的数的下标。
相关文章推荐
- 【算法学习笔记】20.算法设计初步 归并排序 求逆序数
- hdu 1394 Minimum Inversion Number (裸树状数组 求逆序数 && 归并排序求逆序数)
- 白话经典算法系列之九 从归并排序到数列的逆序数对(微软笔试题)
- 【算法学习笔记】20.算法设计初步 归并排序 求逆序数
- 【算法】逆序对问题的四种解法(归并排序,BST,树状数组,线段树)及变形
- iOS 算法面试题(字符串逆序输出、二叉树、归并排序)~demo
- 高效算法设计_再谈排序和检索(归并排序,逆序数对)
- 【算法导论】2-2 二路归并排序(分治)merge-sort 和逆序对的问题
- POJ 0809 求逆序对数(归并排序求逆序数)
- 算法导论 归并排序解决逆序数
- 【白话经典算法系列之九】 从归并排序到数列的逆序数对(微软笔试题)
- 白话经典算法系列之九 从归并排序到数列的逆序数对(微软笔试题)
- 白话经典算法系列之九 从归并排序到数列的逆序数对(微软笔试题)
- 紫书第八章-----高效算法设计(归并排序求逆序对数)
- 通用算法模板:归并排序求逆序对
- 白话经典算法系列之九 从归并排序到数列的逆序数对(微软笔试题)
- 白话经典算法系列之九 从归并排序到数列的逆序数对(微软笔试题)
- 求逆序数的快速算法--归并排序
- 白话经典算法系列之九 从归并排序到数列的逆序数对(微软笔试题)
- 排序-归并排序与求逆序数的算法--转帖-长见识了