插入排序用java写,排序量为两万,请问怎么写

插入排序用java写,排序量为两万,请问怎么写???并且计算出所需要的时间是多少

int[] arr= new int[20000];



import java.util.*;
class sorts
{
public static void main(String[] args)
{
int[] arr= 你的2万的数组
sorts.InsertSort(arr);
}
public static int[] InsertSort(int[] arr)
{
int i,j;
int insertNote;//要插入的数据
int[] array=arr;

//从数组的第二个元素开始循环将数组中的元素插入
for (i=1;i {
//设置数组中的第2个元素为第一次循环要播讲的数据
insertNote = array[i];
j=i-1;
while(j>=0&&insertNote<array[j])

{
//如果要播讲的元素小于第j个元素,就将第j个元素向后移动
array[j+1]=array[j];
j--;
}
//直到要插入的元素不小于第j个元素,将insertNote插入到数组中
array[j+1]=insertNote;
}
//打印排序后的数组
System.out.println(Arrays.toString(array));
return array;

}
}


计算时间
 long starTime=System.currentTimeMillis();
 你的代码
 long endTime=System.currentTimeMillis();
long Time=endTime-starTime;
 System.out.println(Time /1000); //秒,进一步/60是分钟,/3600是小时,等等

 2万排序秒出结果

public class Text {
static int i;
static int j;
static int temp;
int[] r = new int[20000];
public static void Text(int[] r){
for(i=1;i temp = r[i];
j=i-1;
while(j>=0&&temp<r[j]){
r[j+1]=r[j--];
r[j+1]=temp;
}
}
// System.out.println("\nAfter change:");
//for(i=0;i<r.length;i++) {
//System.out.print(r[i]+" ");
}

public static void main(String[] args) {
    int[] r = new int[20000];
    int i,j,temp;

    for(i=0;i<r.length;i++) {
        r[i] = (int)(Math.random()*20000);
    }
    Text(r);
    for(i=0;i<r.length;i++) {
        System.out.print(r[i]+" ");
    }

}

}

大数据量排序的话,不能用内部排序,应该用外部排序吧。数据量太大加载到内存会出现内存溢出的。

你上面贴的代码有编译错误啊,而且你为什么要定义一个与类名相同的静态方法呢?
一般只有构造函数才与类名称一样的。