⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basiccollection.java

📁 用于求解TSP(Traveling salesman problem
💻 JAVA
字号:
/**
 * 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -