public List<Integer> Sort(List<Integer>[] classifyErrorNo,
			int numInstances, List<Double> correctRateArray) {
		int i, j;
		double[][] CFs = new double[classifyErrorNo.length][classifyErrorNo.length];
		// 计算分类器之间的互补指数
		for (i = 0; i < classifyErrorNo.length; i++) {
			for (j = 0; j < classifyErrorNo.length; j++) {
				if (i != j) {
					CFs[i][j] = CalculateCF(classifyErrorNo[i],
							classifyErrorNo[j], numInstances);
				} else if (i == j) {
					CFs[i][j] = 0;
				}
			}
		}
		//
		/*
		 * for(i=0;i<classifyErrorNo.length;i++){ for (j = 0; j <
		 * classifyErrorNo.length; j++) { System.out.print(CFs[i][j]+"	"); }
		 * System.out.println(); }
		 */
		List<Integer> T = new ArrayList();
		List<Integer> D = new ArrayList();
		//
		for (i = 0; i < classifyErrorNo.length; i++) {
			T.add(i);
		}
		// System.out.println(T);
		//
		/*
		 * D.add(T.get(0)); T.remove(0);
		 */
		double correctRate = Collections.max(correctRateArray);
		int maxNo = correctRateArray.indexOf(correctRate);
		D.add(T.get(maxNo));
		T.remove(maxNo);
		//
		double maxTF, tempTF;
		double tempMax = 0;
		double temp;

		int tempNo = 0;
		//
		DecimalFormat df = new DecimalFormat("0.00000");
		// System.out.println(ClassifierNo);

		while (T.size() != 0) {
			maxTF = Double.MIN_VALUE;
			for (i = 0; i < T.size(); i++) {
				//
				tempTF = CalculateTF(D, T.get(i), CFs);
				//
				if (tempTF > maxTF) {
					maxTF = tempTF;
					tempNo = i;
				}
			}
			//
			temp = maxTF - tempMax;
			// System.out.println(/*T.get(tempNo)+"	"+df.format(maxTF)+"	"+*/df.format(Math.abs(temp)));
			// System.out.println(T.get(tempNo)+"	"+df.format(maxTF)+"	"+df.format(temp));
			//
			tempMax = maxTF;
			//
			D.add(T.get(tempNo));
			T.remove(tempNo);
		}
		// System.out.println(tempMax);
		System.out.println("排序：" + D);
		return D;
	}