标签排序算法 - 无法让我的工作

时间:2018-06-17 21:23:08

标签: algorithm sorting tags

我在网上发现了一个标签排序算法的java示例,我决定将它实现到我的代码中。

我需要一种非破坏性的数组排序方式,因此使用单独的数组作为排序顺序的索引似乎就是这样。

这是我找到的代码:

int n = persons.length;
for (int i=0; i<n; i++)
{
    for (int j=i+1; j<n; j++)
    {
        if (persons[tag[i]].getSalary() >
            persons[tag[j]].getSalary())
        {
            int temp = tag[i];
            tag[i] = tag[j];
            tag[j] = temp;
        }
   }
}

因此我将其改编为:(不是任何已知的脚本语言,来自冒险游戏引擎)

for (int i = 0; i < 5; i++)
{
  for (int j = i+1; j < 5; j++)
  {
    if (testOriginal[testOrdered[i]] > testOriginal[testOrdered[j]])
    {
      int temp = testOrdered[i];
      testOrdered[i] = testOrdered[j];
      testOrdered[j] = temp;
    }
  }
}

但是当序列[6,5,3,8,1]中的馈送(例如)时,它会吐出&#34; 42103&#34;,这显然是不正确的。它应该是&#34; 32140&#34;。我遵循了纸上功能的逻辑并得到了相同的结果。

但是,当我运行java版本时,它每次都能完美运行。

有人可以帮我看看我哪里出错吗?我知道我必须在某个地方犯一些愚蠢的错误。

提前致谢!

0 个答案:

没有答案