📄 hamiltonsort.java
字号:
/*
*@(#)HamiltonSort.java 2.0 2005/05/03
*
*清华大学 精密仪器与机械学系
*范灿升 fancansheng@163.com
*/
package algorithm;
import java.util.Comparator;
/**
*这个类对旅行商问题中完全图的边进行排序,是实现排序的一个类。
*<p>算法只要求图是无向完全图,对边权的正负不作规定。
*<p>只有对边完成排序后,旅行商问题才可能用分支与界法进行求解。
*@version 2.0, 2005/05/03
*@author 范灿升
*@see GraphTheory
*/
public class HamiltonSort implements Comparator
{
public HamiltonSort(){}
/**
*对o1、o1进行排序。
*<p>o1和o2都必须是int[]类。
*<p>每个int[]的长度为5,即该int[]有四个元素:int[0]、int[1]、int[2]、int[3]、int[4]。
*<p>其中int[0]是边权(可正可负,但一般为正),int[1]、int[2]是int[0]对应边的两个结点,
*int[3]是排好序后被赋值的序号位。int[4]表示由边生成路径时是否已作标记。
*<p>影响排序的只有int[0]。
*@param o1 待比较的第一个int[]类
*@param o2 待比较的第二个int[]类
*@return -1:当int1[0]小于int2[0]时
* <p>0:当int1[0]等于int2[0]时
* <p>1:当int1[0]大于int2[0]时
*/
public int compare(Object o1,Object o2)
{
int edge1=((int[])o1)[0];
int edge2=((int[])o2)[0];
if(edge1<edge2)
return -1;
else if(edge1==edge2)
return 0;
else
return 1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -