java实现插入排序,可以实现一千以内的数排序,但大了就无结果请问是怎么回事,电脑运行慢??

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;
}
}

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]+" "); } }

}

你这代码根本就编译通不过啊。存在的语法错误:1你的成员变量有一个数组r,而你方法参数也是int[]r,你使用时两个同名变量冲突了。
修正下你的代码如下:

 import java.util.Arrays;

public class Text {
    public static void insertSort(int[] array) {
        for (int i = 1; i < array.length; i++) {
            int currentValue = array[i];
            int position = i;
            for (int j = i - 1; j >= 0; j--) {
                if (array[j] > currentValue) {
                    array[j + 1] = array[j];
                    position -= 1;
                } else {
                    break;
                }
            }

            array[position] = currentValue;
        }

    }

    public static void main(String[] args) {
        int[] r = new int[2000];
        for (int i = 0; i < r.length; i++) {
            r[i] = (int) (Math.random() * 20000);
        }

        System.out.println("before sort:"+Arrays.toString(r));
        insertSort(r);
        System.out.println("after sort:"+Arrays.toString(r));
    }

}

怎么可能,才几千个数的排序,现在的电脑,刷刷几下就排好了

怎么可能,才几千个数的排序,现在的电脑,刷刷几下就排好了

因为排序是把数据加载到内存来算的,小数据量没有问题,大数据量就不建议加载到内存来排序,容易内存溢出。