易截截图软件、单文件、免安装、纯绿色、仅160KB

java实现的递归方法逆序对查找

下面是使用java实现的递归逆序对查找,所谓的逆序对就是在数组A[]中如果 i < j ,并且A[i] > A[j], 则我们说A[i]和A[j]是一对逆序对。如果用普通的算法实现的话,查找的时间复杂度,是O(N*N),使用这里的队规的方式查找的话,时间复杂度是O(N*lgN)
import java.util.Date;
import java.util.Random;
/*
* 使用递归实现的统计数组中的逆序对数量。
*/
public class InversionSearch {

public static void main(String args[])
{
int len = 5;
Date date = new Date();
Random random = new Random(date.getSeconds());
int data[]=new int[len];
for(int i = 0; i < len; i++)
{
data[i]=(int)(random.nextFloat()*100+1);
}
show(data);
int count= inversionSearch(data,1,data.length);
System.out.println("共有逆序对:"+count);
}
private static void show(int[] data)
{
System.out.println("========================");
for(int i = 0; i < data.length; i++)
{
System.out.print(data[i] + " ");
}
System.out.println();
System.out.println("========================");
}

public static int inversionSearch(int[] data,int start,int end)
{
int count=0;
if(end>start){
int pos = (start+end)/2;
int temp1 = inversionSearch(data,start,pos);
int temp2 = inversionSearch(data,pos+1,end);
count = mergeSearch( data,start,pos,end)+temp1+temp2;
}
return count;
}

public static int mergeSearch(int[] data,int start,int pos,int end)
{
int count=0;
for(int i=pos; i<end; i++)
{
for(int j=start-1; j<pos; j++)
{
if(data[i]<data[j])
{
count++;
}
}
}
return count;
}
}


相关文档:

java入门

 Java学习从入门到精通 
一、 JDK (Java Development Kit) 
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......

Java SE 接口、抽象类

package demo;
interface Runner{
 int ID=1;
 void run();
 void fly();
}
abstract class AI implements Runner{
 public void run(){
  System.out.println("I am running");
 }
 public void bb(int x,int y){
  System.out.println((x+y));
 }
& ......

java GB转 UTF 8字符

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class GB2UTF
{
 public static String GBK2Unicode(String str)
 {
  StringBuffer result = new StringBuffer();
  for (int i = 0; i < str.length(); i++)
 &n ......

用java实现的迭代和递归插入排序

下面使用一个java实现的迭代版的递归版的插入排序。
package sort;
import java.util.Date;
import java.util.Random;
/*
* 插入排序
*/
public class InsertSort{
public static void main(String args[])
{
int len = 20;
Date date = new Date();
Random random = new Random(date.getSeconds()); ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号