插入排序出错
Insertion Sort Gone Wrong
我有一个用随机整数填充的数组列表。我正在尝试使用插入排序进行排序,然后将它们打印在屏幕上。一切正常,但插入排序......不知道出了什么问题,有人可以看看它并找出问题所在......谢谢。
public static ArrayList<Integer> oh = new ArrayList<Integer>();
public static ArrayList<Integer> gen2()
{
ArrayList<Integer> oh = new ArrayList<Integer>();
Random random = new Random();
for (int i = 0; i < 100; i++)
{
oh.add(random.nextInt());
}
return oh;
}
public static ArrayList<Integer> insertionSort(ArrayList<Integer>oh) {
int i, j;
for (i = 1; i < oh.size(); i++) {
Integer tmp = oh.get(i);
j = i;
while ((j > 0) && (oh.get(j - 1).intValue() > tmp.intValue())) {
oh.set(j, oh.get(j - 1));
j--;
}
oh.set(j, tmp);
}
return oh;
}
public static void main(String[] args)
{
System.out.println("Original List:");
System.out.println(gen2());
System.out.println("Sorted Arraylist:");
System.out.print(insertionSort(oh));
}
您正在隐藏 oh 变量。
在 gen2 方法中,转换这个
ArrayList<Integer> oh = new ArrayList<Integer>();
对此
oh = new ArrayList<Integer>();
它不起作用的原因是因为您声明了一个新的 ArrayList(名为 oh),其作用域就在 gen2 方法内。删除 ArrayList 会导致将新的 ArrayList 分配给原始 class oh 引用。
我有一个用随机整数填充的数组列表。我正在尝试使用插入排序进行排序,然后将它们打印在屏幕上。一切正常,但插入排序......不知道出了什么问题,有人可以看看它并找出问题所在......谢谢。
public static ArrayList<Integer> oh = new ArrayList<Integer>();
public static ArrayList<Integer> gen2()
{
ArrayList<Integer> oh = new ArrayList<Integer>();
Random random = new Random();
for (int i = 0; i < 100; i++)
{
oh.add(random.nextInt());
}
return oh;
}
public static ArrayList<Integer> insertionSort(ArrayList<Integer>oh) {
int i, j;
for (i = 1; i < oh.size(); i++) {
Integer tmp = oh.get(i);
j = i;
while ((j > 0) && (oh.get(j - 1).intValue() > tmp.intValue())) {
oh.set(j, oh.get(j - 1));
j--;
}
oh.set(j, tmp);
}
return oh;
}
public static void main(String[] args)
{
System.out.println("Original List:");
System.out.println(gen2());
System.out.println("Sorted Arraylist:");
System.out.print(insertionSort(oh));
}
您正在隐藏 oh 变量。
在 gen2 方法中,转换这个
ArrayList<Integer> oh = new ArrayList<Integer>();
对此
oh = new ArrayList<Integer>();
它不起作用的原因是因为您声明了一个新的 ArrayList(名为 oh),其作用域就在 gen2 方法内。删除 ArrayList 会导致将新的 ArrayList 分配给原始 class oh 引用。