【发布时间】:2012-04-13 05:42:29
【问题描述】:
我有一个家庭作业,要按升序对数组进行排序。显然,这是手动完成的,不使用任何类型的sort() 函数。
我想这样做,我需要两个 for 循环:第一个循环将遍历现有数组并使用数组的值和索引创建一个临时值。第二个循环会将临时值与现有值进行比较并对它们进行排序。我一直在尝试编写代码,但我似乎无法正确编写代码。这是我想出的最新方法:
public int[] sortArray (int[] inArray)
{
//Construct the array we're using here
int[] newArray = inArray;
for(int x = 0; x < a.length; x++) //a.length = # of indices in the array
{
int tempValue = a[x];
int tempIndex = x;
for(int y = 0; y < a.length; y++)
{
if(tempValue < a[y])
{
newArray[x] = tempValue;
}
}
}
return newArray;
}
我很确定这是不正确的,但如果有人能把我推向正确的方向,我将不胜感激!
【问题讨论】:
-
可能值得您首先查看一些用于不同排序算法的伪代码:maven.smith.edu/~thiebaut/java/sort
-
你应该使用某种排序算法吗?
-
除非明确要求您考虑排序算法,否则我建议您找到一个简单的算法并在您的代码中实现它。而不是“非常确定”您的代码不正确,只需对其进行测试并找出答案。
-
是的,算法一定是我自己的。 “很确定它不起作用”是指它不起作用,但我希望只需稍微修改代码即可使其正常工作,而不是从头开始。
-
您使用变量
a无处可见。使用 inArray 代替它。创建新数组的正确方法是int[] newArray = new int[inArray.length];。