public void nextPermutation(int[] num) {
		if (num == null || num.length == 0) {
			return;
		}
		int vio = num.length - 1;
		while (vio > 0) {
			if (num[vio - 1] < num[vio]) {
				break;
			}
			vio--;
		}

		if (vio > 0) {
			vio--;
			int rightIndex = num.length - 1;
			while (rightIndex >= 0 && num[rightIndex] <= num[vio]) {
				rightIndex--;
			}
			int temp = num[vio];
			num[vio] = num[rightIndex];
			num[rightIndex] = temp;
			vio++;
		}
		int end = num.length - 1;
		while (end > vio) {
			int temp = num[vio];
			num[vio] = num[end];
			num[end] = temp;
			vio++;
			end--;
		}

	}