📄 replecandidatesetbuilder.java
字号:
/**
* Description: For building the candidate set for an array with some repeat elements
*
* @ Author Create/Modi Note
* Xiaofeng Xie Dec 05, 2006
*
* @version 1.0
*/
package implement.common.behavior.elemPick.increment.candidateBuild;
import Global.basic.data.collection.*;
public class RepLECandidateSetBuilder extends AbsLECandidateSetBuilder {
//For extensive IDs
private IBasicICollectionEngine segmentIDArray;
private IBasicICollectionEngine segmentWVArray;
public RepLECandidateSetBuilder() {}
public void initValueArray(int[] valueArray) {
super.initValueArray(valueArray);
int nodeNumber = valueArray.length;
IArray segmentIDArray = new IArray(nodeNumber);
IArray segmentWVArray = new IArray(nodeNumber);
int[] sortedArray = new int[nodeNumber];
for (int i=0; i<nodeNumber; i++) {
sortedArray[i] = valueArray[orderArray[i]];
}
BasicCollection.toSegments(segmentIDArray, segmentWVArray, sortedArray);
this.segmentIDArray = segmentIDArray;;
this.segmentWVArray = segmentWVArray;
}
// The corrected getMaxWID function
// protected int getMaxWID(int maxWSum) {
// return segmentIDArray.getElementAt(BasicCollection.binaryLSearch(segmentWVArray, maxWSum, 0, segmentWVArray.getSize()-1));
// }
//Note: The getMaxWID function in the SIS07 paper has the bug
protected int getMaxWID(int maxWSum) {
int dataSize = segmentWVArray.getSize()-1;
if (segmentWVArray.getElementAt(dataSize)<=maxWSum) return segmentIDArray.getElementAt(dataSize);
int i;
for (i=0; i<dataSize; i++) {
if (segmentWVArray.getElementAt(i)>maxWSum) {
break;
}
}
return segmentIDArray.getElementAt(i);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -