basiccollection.java
来自「用于求解TSP(Traveling salesman problem」· Java 代码 · 共 91 行
JAVA
91 行
/**
* Description:
*
* @ Author Create/Modi Note
* Xiaofeng Xie Apr 27, 2005
*/
package Global.basic.data.collection;
import Global.methods.*;
public class BasicCollection {
public static int getRandomElement(IBasicICollectionEngine srcArray) {
return srcArray.getElementAt(RandomGenerator.intRangeRandom(srcArray.getSize()));
}
public static int getRandomElement(IBasicICollectionEngine srcArray, int exceptID) {
return srcArray.getElementAt(RandomGenerator.intRangeRandomWithExceptID(srcArray.getSize(), exceptID));
}
public static int getExtremalElementIndices(int[] srcArray, int[] idArray, boolean isMax) {
int maxV = -Integer.MAX_VALUE;
if (!isMax) maxV = Integer.MAX_VALUE;
int degree = -1;
int idSize = 0;
for (int i=0; i<srcArray.length; i++) {
degree = srcArray[i];
if ((maxV < degree)==isMax && maxV!=degree) {
maxV = degree;
idArray[0] = i;
idSize = 1;
} else if (maxV==degree) {
idArray[idSize] = i;
idSize++;
}
}
return idSize;
}
public static void getExtremalElementIndices(int[] srcArray, IPumpICollectionEngine idArray, boolean isMax) {
int maxV = -Integer.MAX_VALUE;
if (!isMax) maxV = Integer.MAX_VALUE;
int degree = -1;
for (int i=0; i<srcArray.length; i++) {
degree = srcArray[i];
if ((maxV < degree)==isMax && maxV!=degree) {
maxV = degree;
idArray.clear();
idArray.addElement(i);
} else if (maxV==degree) {
idArray.addElement(i);
}
}
}
public static int getExtremalElementIndices(IBasicICollectionEngine srcArray, IPumpICollectionEngine idArray, boolean isMax) {
int maxV = -Integer.MAX_VALUE;
if (!isMax) maxV = Integer.MAX_VALUE;
int number = 0;
int degree = -1;
for (int i=0; i<srcArray.getSize(); i++) {
degree = srcArray.getElementAt(i);
if ((maxV < degree)==isMax && maxV!=degree) {
maxV = degree;
idArray.clear();
idArray.addElement(i);
} else if (maxV==degree) {
idArray.addElement(i);
}
}
return number;
}
public static void toSegments(IDynamicICollectionEngine segmentIDArray, IDynamicICollectionEngine segmentValueArray, int[] orderredArray) {
int currentW = -Integer.MAX_VALUE;
int selectedW;
segmentIDArray.clear();
segmentValueArray.clear();
for(int i=0; i<orderredArray.length; i++) {
selectedW = orderredArray[i];
if (selectedW!=currentW) {
segmentIDArray.addElement(i);
currentW = selectedW;
segmentValueArray.addElement(currentW);
}
}
segmentIDArray.addElement(orderredArray.length);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?