基于加权值确定项目顺序的算法

时间:2015-05-28 07:07:42

标签: algorithm sorting

我甚至不确定从哪个问题开始,并希望有人能指出我正确的方向。

我有一个项目列表,每个项目都有四个属性。这些属性有利于权衡,例如,属性1比属性2更重要,等等。

我希望找到一种算法或某种方程式来根据这些值来订购这些项目。想法?

2 个答案:

答案 0 :(得分:6)

您应该使用regular sorting algorithm,唯一的区别是您的比较器,说x<y更复杂,应该类似于以下伪代码:

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
}

另一种方法是使用stable sorting algorithm,并重复每个属性的排序,从最不重要的开始,到最重要的结尾。

答案 1 :(得分:1)

如果你想对你的东西进行排序(例如:

1234 1244 1312

您可以使用Radix algorith