我正在尝试在Java中实现合并排序。我知道我想要编写什么,但是我会感激一些指针,因为我无处可去。
int left=0;
int right;
int end;
DataItem tempArray[] = new DataItem[data.length];
String key;
int t1;
int t2;
for (int j = 1; j <= data.length; j = 2 * j)//j = gtoup size
{
for (left =0; end<=data.length; left= left+ j)
{
t1=left;
t2 = right;
for (int i=left; i<end; i++)//for all elements across both sets
{
key = data[t1].key;
if ((t1<right) && (t2>=end) || key.compareToIgnoreCase(data[t2].key) <0)
{
tempArray[i] = data[t1++];
}
else
{
tempArray[i] = data[t2++];
}
}
for (int k = 0; k <= tempArray.length; k++)
{
tempArray[k] = data[k];
}
right = left+j;
end = right+j;
}
}
以下是我的大部分代码。
我尝试做的是将当前左侧+组大小设置为正确。然后结束变为正确+当前组大小。当数组完全遍历时,我想要将组大小加倍并重新开始,直到groupsize为= end,因为这是排序完成的时候。
我应该看到的代码区域的任何指示都非常感激。
亲切的问候。