博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组中的逆序对
阅读量:4212 次
发布时间:2019-05-26

本文共 860 字,大约阅读时间需要 2 分钟。

题目描述

在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007

 

程序代码如下,其本质就是归并排序的基础上做一些修改。

 

public class Solution {    public int cnt=0;	public int[] temp;		//归并排序	public void mergeSort(int L, int R, int[] array)	{		if(L==R)		{			return;		}				int mid=(L+R)/2;		mergeSort(L,mid,array);		mergeSort(mid+1,R,array);		int left=mid;		int right=R;		for(int i=R;i>=L;i--)		{			if(left
=array[right]) //左边部分的值大于右边部分的值 { this.cnt=(this.cnt+(right-mid))%1000000007; //这一步很重要 temp[i]=array[left]; left--; } else { temp[i]=array[right]; right--; } } for(int i=L;i<=R;i++) { array[i]=temp[i]; } } public int InversePairs(int [] array) { if(array.length==0) { return 0; } temp=new int[array.length]; mergeSort(0,array.length-1,array); return cnt%1000000007; }}

 

转载地址:http://sckmi.baihongyu.com/

你可能感兴趣的文章
Sql2005 全文索引
查看>>
全文检索拾零
查看>>
sql server 2008全文索引干扰词示例
查看>>
SQL Server DATEDIFF() 函数
查看>>
关于使用表接收存储过程返回结果集的问题
查看>>
SQL Server数据库常用的T-SQL命令
查看>>
SQL SERVER性能优化--Tempdb相关问题
查看>>
SQL SERVER 中如何使用行锁
查看>>
SQL Server索引原则
查看>>
清理SQL Server 2008数据库日志
查看>>
索引记录数据的基本格式
查看>>
SQL SERVER性能优化--分区表
查看>>
SQL SERVER 2005数据加密
查看>>
SQL SERVER性能分析--死锁检测数据库阻塞语句
查看>>
时间格式转换函数
查看>>
高效SQL查询之Graphical Execution Plans
查看>>
sql server性能分析--DMV之(sys.dm_exec_query_stats )
查看>>
高效SQL查询之索引覆盖(index coverage)
查看>>
高效SQL查询之索引(VI)
查看>>
高效SQL查询之索引(II)
查看>>