我正在尝试编写一些在作业中给出的伪代码 - 但是我现在正在做的编码部分不是作业的一部分,只是为了好玩。
伪代码的一部分说“交换数组的元素”。在我的代码中,我必须在两个地方执行此操作。但是我想知道是否有一种方法可以通过只创建一个方法来做到这一点,即创建另一种方法来简单地交换它们并保存我每次想要运行它时使用的额外代码行。
问题是,如果我在这个方法之外创建一个全新的方法,我将不得不将数组作为参数发送并取出它,我担心这会降低效率(显然没什么大不了的在这里,但我正在努力为未来的大型项目学习)。
这是我的代码,其中包含重复的“交换”方法行。
public int[] myAlgorithm(int[] arrayOfInts, int size){
boolean done = true;
int j= 0;
while (j <= n-2){
if (arrayOfInts[j] > arrayOfInts[j+1]){
int tempHolder = arrayOfInts[j];
arrayOfInts[j] = arrayOfInts[j+1];
arrayOfInts[j+1] = tempHolder;
done = false;
}
j = j + 1;
}
j = size - 1;
while (j >= 1){
if (arrayOfInts[j] <= arrayOfInts[j-1]){
int tempHolder = arrayOfInts[j];
arrayOfInts[j] = arrayOfInts[j+1];
arrayOfInts[j+1] = tempHolder;
done = false;
}
j--;
}
if (!done)
myAlgorithm(arrayOfInts, size)
else
return arrayOfInts;
}