还有别的方式输出上面这个题吗
时间: 2024-03-08 09:45:46 浏览: 23
是的,还有其他的方式可以实现插入排序。比如,可以使用 for 循环来实现插入排序,代码如下:
```java
public class InsertionSort {
public static void main(String[] args) {
int[] arr = { 2, 4, 6, 8, 10, 12, 14 };
int num = 7;
int[] result = insert(arr, num);
System.out.println(Arrays.toString(result));
}
public static int[] insert(int[] arr, int num) {
int[] result = new int[arr.length + 1];
int i;
for (i = arr.length - 1; i >= 0 && arr[i] > num; i--) {
result[i + 1] = arr[i];
}
result[i + 1] = num;
for (int j = 0; j <= i; j++) {
result[j] = arr[j];
}
return result;
}
}
```
这个程序也是先创建了一个有序数组 `arr`,然后定义了要插入的数 `num`。`insert` 方法同样将 `num` 按照原来的排序规律插入到 `arr` 中,并将结果保存在一个新的数组 `result` 中,最后返回这个数组。
在 `insert` 方法中,我们首先创建了一个长度比 `arr` 大 1 的新数组 `result`,然后使用一个 for 循环从后往前遍历 `arr`,将大于 `num` 的元素向后移动一位,直到遇到第一个小于等于 `num` 的元素,将 `num` 插入到 `result` 中,最后再将剩余的元素复制到 `result` 中即可。
运行这个程序,输出结果与前面的程序相同:
```
[2, 4, 6, 7, 8, 10, 12, 14]
```
这个代码示例使用了 for 循环来实现插入排序,与 while 循环的实现方式略有不同,但是实现的效果是相同的。希望这个例子也能对你有所帮助!