我们可以先找到目标元素在数组中的索引,然后按照以下步骤排序:
以下是Java示例代码:
public static void sortByClosestElement(int[] arr, int target) {
int n = arr.length;
// 1. 计算差值并存储到一个新的数组
int[] diff = new int[n];
for (int i = 0; i < n; i++) {
diff[i] = Math.abs(arr[i] - target);
}
// 2. 根据差值的绝对值进行排序
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (diff[j] < diff[i]) {
int temp = diff[i];
diff[i] = diff[j];
diff[j] = temp;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
// 3. 根据顺序排列数组
int[] sortedArr = new int[n];
for (int i = 0; i < n; i++) {
sortedArr[i] = arr[i];
}
// 输出结果
System.out.println(Arrays.toString(sortedArr));
}
下一篇:按照索引连接单词