2015-11-05 77 views
4

以下排序順序是否有名字?給定一個索引,按照與該索引相近的順序對列表進行排序。這種排序有一個名字嗎?

Collections.sort(items, new Comparator<String>() { 

     @Override 
     public int compare(String o1, String o2) { 

      int distanceA = (int)Math.abs(centerIndex - items.indexOf(o1)); 
      int distanceB = (int)Math.abs(centerIndex - items.indexOf(o2)); 

      int result = distanceA - distanceB; 
      return result; 
     } 
} 

所以對於列表[1,2,3,4,5,6,7,8,9,10]和7 centerIndex,排序列表將是:[7,8,6,9,5,10,4,3,2,1]

+3

爲什麼排序的列表以'7,8,6'開頭,'7,6,8'不可接受?在我看來,6和8兩者的距離都相同。7 – Tunaki

+1

@ Tunkai。排序可能會也可能不穩定。這個似乎並不是因爲如果距離相等,比較器不檢查絕對符號。 –

+1

@Tunaki它說「7,6,8」不可接受? –

回答

1

「按距離排序」是一個完全合適的名字,因爲你compare方法是度量或距離函數。 See wikipedia

相關問題