/** * 找出前N个最大值和在原数组中的index * * @param nums * @param n * @return */ private static String[] sort(int[] nums, int n) { int len = nums.length; int[] maxIdxs = new int[len]; for (int i = 0; i < len; i++) { maxIdxs[i] = i; } // 冒泡排序 for (int i = len - 1; i > 0; i--) { for (int j = 0; j < i; j++) { int num1 = nums[maxIdxs[j]]; int num2 = nums[maxIdxs[j + 1]]; if (num1 < num2) { int tmp = maxIdxs[j]; maxIdxs[j] = maxIdxs[j + 1]; maxIdxs[j + 1] = tmp; } } } String[] res = new String[n]; for (int i = 0; i < n; i++) { int index = maxIdxs[i]; int num = nums[index]; res[i] = num + ":" + index; } return res; }