/*
* 功能:演示各种排序
*/
package com.test6;public class Test { public static void main(String[] args) {
// TODO 自动生成的方法存根
int len = 10;
int[] a = new int[len];
for (int i = 0; i < len; i++) {
// 让程序随机产生一个1到10000的数
// Math.random()会产生一个0到1的数字
int t = (int) (Math.random() * 10000);
a[i] = t;
} InsertSort insert = new InsertSort(); insert.sort(a); }}// 插入排序
class InsertSort { // 从小到大排序
public void sort(int a[]) {
for (int i = 1; i < a.length; i++) {
int insertVal = a[i];
// insertVal准备和前一个数比较
int index = i - 1;
while (index >= 0 && insertVal < a[index]) {
// 将把a[i]向后移动
a[i + 1] = a[i];
index--;
}
// 将insertVal插入到适当位置
a[index + 1] = insertVal;
}
for (int i = 0; i < a.length; i++)
System.out.print(a[i] + " ");
}
}
自学java 用eclipse的结果排序不对 而且多运行几次 还会报错
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at com.test6.InsertSort.sort(Test.java:36) at com.test6.Test.main(Test.java:21)
求大佬帮忙看一下 我是看着视频学的 跟着视频打 一模一样啊
难道是我哪里眼瞎了?
* 功能:演示各种排序
*/
package com.test6;public class Test { public static void main(String[] args) {
// TODO 自动生成的方法存根
int len = 10;
int[] a = new int[len];
for (int i = 0; i < len; i++) {
// 让程序随机产生一个1到10000的数
// Math.random()会产生一个0到1的数字
int t = (int) (Math.random() * 10000);
a[i] = t;
} InsertSort insert = new InsertSort(); insert.sort(a); }}// 插入排序
class InsertSort { // 从小到大排序
public void sort(int a[]) {
for (int i = 1; i < a.length; i++) {
int insertVal = a[i];
// insertVal准备和前一个数比较
int index = i - 1;
while (index >= 0 && insertVal < a[index]) {
// 将把a[i]向后移动
a[i + 1] = a[i];
index--;
}
// 将insertVal插入到适当位置
a[index + 1] = insertVal;
}
for (int i = 0; i < a.length; i++)
System.out.print(a[i] + " ");
}
}
自学java 用eclipse的结果排序不对 而且多运行几次 还会报错
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at com.test6.InsertSort.sort(Test.java:36) at com.test6.Test.main(Test.java:21)
求大佬帮忙看一下 我是看着视频学的 跟着视频打 一模一样啊
