package weka.classifiers.rules.ruleshandler;
public class CHeaderTable {
int frequentCount;
CFrequentItem[] frequentArray;
public CHeaderTable(int k) {
frequentArray = new CFrequentItem[k];
frequentCount = 0;
for ( int t = 0 ; t<k ; t++) {
frequentArray[t] = new CFrequentItem(CMain.MAX_CLASSES);
}
}
public void quicksort(int left,int right) {
CFrequentItem temp;
CFrequentItem pivot;
int i,j;
i = left;
j = right;
pivot = frequentArray[(int)((left+right)/2)];
do {
while ( (itemCompare(frequentArray[i],pivot) < 0) && i<right ) {
i++;
}
while ( (itemCompare(frequentArray[j],pivot) > 0) && j>left ) {
j--;
}
if ( i <= j) {
temp = frequentArray[i];
frequentArray[i] = frequentArray[j];
frequentArray[j] = temp;
i++;
j--;
}
} while ( i <= j );
if ( left < j)
quicksort(left , j);
if ( right > i)
quicksort(i, right);
return;
}
public int itemCompare ( CFrequentItem cf1, CFrequentItem cf2) {
if ( cf1.supp < cf2.supp )
return -1;
if ( cf1.supp > cf2.supp )
return 1;
if ( cf1.supp == cf2.supp) {
if ( cf1.itemId < cf2.itemId )
return -1;
if ( cf1.itemId > cf2.itemId )
return 1;
}
return 0;
}
public void setFrequent ( int j) {
frequentCount = j;
}
}