算法导论--逆序对
2017-10-01 22:56
344 查看
答:
a)、10个逆序对
b)、n(n−1)2
c)、代码:
public class InversionPro { static int count = 0; public static void main(String[] args) { int[] arr = {10,9,8,7,6,5,4,3,2,1}; InversionProFun(arr,0,arr.length-1); System.out.println("逆序对数目为:"+count); } public static void InversionProFun(int[] arr,int l,int r){ if(l<r){ int mid = (l+r)/2;//求中间值 InversionProFun (arr,l,mid); InversionProFun(arr,mid+1,r); Merge(arr,l,mid,r); } } public static void Merge(int[] arr,int l,int mid,int r){ int n1 = mid - l +1; int n2 = r - mid; //分解成两个新数组,用来存放左边和右边的内容 int[] L = new int[n1]; int[] R = new int[n2]; for(int i=0;i<n1;i++){ L[i] = arr[l+i]; } for(int i=0;i<n2;i++){ R[i] = arr[mid+1+i]; } for(int i=0;i<L.length;i++){ for(int j=0;j<R.length;j++){ if(L[i]>R[j]){ count++; } } } } }
相关文章推荐
- 算法导论第2章(4) 分治法的应用 找逆序对 (习题2-4)
- 算法导论笔记之---合并排序应用之求逆序数
- 算法导论第十四章习题14.1-7利用顺序统计数统计数组中的逆序数
- 算法导论-逆序对(修改合并排序)
- 算法导论 14.1-7 顺序统计树求逆序对 O(nlgn)
- 算法导论习题---求n个元素任何排列中逆序对的数量
- 算法导论第二章2-4 逆序对(c++)
- 算法导论 14.1-7 顺序统计树求逆序对 O(nlgn)
- 算法导论 逆序对问题
- 算法导论---逆序对 p24题,2-4
- 算法导论 练习题 14.1-7(逆序对)
- 算法导论 逆序对问题
- 数组逆序
- 算法导论—二叉搜索树(BST)
- 算法导论Java实现-随机化数组的两种方式(5.3章节)
- 华为 字符逆序
- 算法导论 - 第25章 每对顶点间的最短路径
- SDUT 3317 反演 归并排序 求逆序数
- 算法导论代码 第9章 中位数和顺序统计学
- 学习《算法导论》 二叉查找树 总结