【发布时间】:2015-12-08 10:03:38
【问题描述】:
所以我们的老师给了我们冒泡排序的代码
public class BubbleSort {
public static void main(String[] args) {
int maxSize = 100;
ArrayBubble arr;
arr = new ArrayBubble(maxSize);
arr.insert(77);
arr.insert(99);
arr.insert(44);
arr.insert(55);
arr.insert(22);
arr.insert(88);
arr.insert(11);
arr.insert(00);
arr.insert(66);
arr.insert(33);
arr.display();
arr.bubbleSort();
arr.display();
}
}
class ArrayBubble {
private int[] list;
private int nItems;
public ArrayBubble(int max) {
list = new int[max];
nItems = 0;
}
public void insert(int value) {
list[nItems] = value;
nItems++;
}
public void display() {
for (int j = 0; j < nItems; j++)
System.out.print(list[j] + " ");
System.out.println("");
}
public void bubbleSort() {
int out, in ;
for (out = nItems - 1; out > 1; out--)
for ( in = 0; in < out; in ++)
if (list[ in ] > list[ in +1]) swap( in , in +1);
}
public void swap(int one, int two) {
int temp = list[one];
list[one] = list[two];
list[two] = temp;
}
}
然后她让我们修改这个并用这个sn-p代码进行插入排序
public void insertionSort() {
int out, in ;
for (out = 1; out < nItems; out++) {
double temp = arr[out]; in = out;
while ( in > 0 && arr[ in -1] >= temp) {
arr[ in ] = a[ in -1];
-- in ;
}
arr[ in ] = temp;
}
}
这是冒泡排序的输出。所以如果我将其修改为插入,它应该具有相同的输出。
77 99 44 55 22 88 11 0 66 33
0 11 22 33 44 55 66 77 88 99
过程完成。
我尝试用此代码替换冒泡排序代码并将 arr.bubbleSort 重命名为 arr.insertionSort 但仍然无法正常工作。 有人可以帮忙吗??谢谢你。 (:
【问题讨论】:
-
@Bombe,所有的家庭作业问题都不值得一票。她显然已经付出了努力,并在没有产生正确结果时寻求帮助..
-
如果您可以指定“它仍然无法工作”会很有帮助。您收到什么错误消息?
-
@Codebender 我认为他们确实值得关闭;他们的老师有报酬回答这类问题。
-
我同意邦贝的观点。你的老师提供的代码写得很糟糕。您只需更改一些变量名并将其添加到您的
ArrayBubble类中。花时间去做,练习和学习。 -
@gefei 它不排序..它只是显示相同的东西.. 77 99 44 55 22 88 11 0 66 33 77 99 44 55 22 88 11 0 66 33
标签: java arrays sorting data-structures