[英]Rank an array (without sorting or creating an object) and keep the original index
[英]keep original index of array (continued)
大家好,感谢您以前的帮助,特别是对Sam,我几乎可以完成这项工作,但是由于家庭紧急情况,不得不暂时停止工作,似乎一切正常,但有一点保留了原来的含义:
int [] indices = new int [15];
for(int i=0; i<indices.length; i++){indices[i] = i;}
// Below code used for sorting
for (int i=0; i<distances.length; i++)
{
for(int j = i+1; j<distances.length; j++)
{
if (distances[i] > distances[j])
{
double temp = distances[j];
distances[j] = distances[i];
distances[i] = temp;
int tempindex = indices[i];
indices[j] = indices[i];
indices[i] = tempindex;
}
}
}
for (int i=1; i<distances.length; i++)
{
System.out.println("Point "+indices[i] + " -> " + distances[i]);
}
}
我确实解释了Sam,但是似乎很难使代码显示原始索引,所以有人有什么想法吗?
不知道我是否理解您的问题。 但是我认为这是一个观念上的问题。
分配tempindex时,请使用所使用的索引。
int tempindex = indices[i];
indices[j] = indices[i];
// tempindex is equal to indeices[i], so this instruction does nothing.
indices[i] = tempindex;
尝试改变
int tempindex = indices[i];
至
int tempindex = indices[j];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.