Algorithm 基于加权值确定项目顺序的算法
我甚至不知道从哪里开始处理这类问题,希望有人能给我指出正确的方向 我有一个项目列表,每个项目有四个属性。属性的权重是有利的,例如,属性1比属性2更重要,等等 我希望找到某种算法或方程式,根据这些值对这些项目进行排序。想法?您应该使用,唯一的区别是您的比较器,即说Algorithm 基于加权值确定项目顺序的算法,algorithm,sorting,Algorithm,Sorting,我甚至不知道从哪里开始处理这类问题,希望有人能给我指出正确的方向 我有一个项目列表,每个项目有四个属性。属性的权重是有利的,例如,属性1比属性2更重要,等等 我希望找到某种算法或方程式,根据这些值对这些项目进行排序。想法?您应该使用,唯一的区别是您的比较器,即说xy.attribute1)返回1 如果(x.attribute2y.attribute2)返回1 如果(x.attribute3y.attribute3)返回1 如果(x.attribute4y.attribute4)返回1 返回0 }
xy.attribute1)返回1
如果(x.attribute2y.attribute2)返回1
如果(x.attribute3y.attribute3)返回1
如果(x.attribute4y.attribute4)返回1
返回0
}
另一种方法是使用,并对每个属性重复排序,从最不重要的属性开始,以最重要的属性结束。您应该使用,唯一的区别是您的比较器,即说x y.attribute1)返回1
如果(x.attribute2y.attribute2)返回1
如果(x.attribute3y.attribute3)返回1
如果(x.attribute4y.attribute4)返回1
返回0
}
另一种方法是使用,并对每个属性重复排序,从最不重要的属性开始,以最重要的属性结束。如果您想(按字典顺序)排序,例如:
1234
1244
1312
如果你想对你的东西进行分类(按字典顺序),你可以使用。,例如:
1234
1244
1312
您可以使用。这有什么问题?哈哈……如果这是最好的方法,那就什么都没有了。就像我提到的…我甚至不知道从哪里开始。我去看看。非常感谢。实现你自己的比较器,使用标准的排序算法……这有什么问题吗?哈哈……如果这是最好的方法,那就什么都没有了。就像我提到的…我甚至不知道从哪里开始。我去看看。非常感谢。实现您自己的比较器并使用标准排序算法。。
compare(x,y) {
if (x.attribute1 < y.attribute1) return -1
if (x.attribute1 > y.attribute1) return 1
if (x.attribute2 < y.attribute2) return -1
if (x.attribute2 > y.attribute2) return 1
if (x.attribute3 < y.attribute3) return -1
if (x.attribute3 > y.attribute3) return 1
if (x.attribute4 < y.attribute4) return -1
if (x.attribute4 > y.attribute4) return 1
return 0
}