public static int[] binaryRanking(int[] data) {
		long cu = System.currentTimeMillis();
		int length = data.length;
		for (int i = 1; i < length; i++) {
			int tempVal = data[i];
			int low = 0;
			int high = i - 1;
			while (low <= high) {
				int middle = (low + high) / 2;
				if (tempVal < data[middle])
					high = middle - 1;
				else
					low = middle + 1;
			}
			for (int j = i; j > high + 1; j--)
				data[j] = data[j - 1];
			data[high + 1] = tempVal;
		}
		System.out.println(System.currentTimeMillis() - cu);
		return data;
	}