用Java实现使用插入排序对给定数组从小到大排序,不需要输出排序后的数组,需输出从第二个元素开始每个元素 插入的的位置。
时间: 2024-03-12 20:44:36 浏览: 45
好的,以下是Java实现插入排序并输出每个元素插入的位置的代码:
```java
public class InsertionSort {
public static void main(String[] args) {
int[] arr = {12, 11, 13, 5, 6};
insertionSort(arr);
}
public static void insertionSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j+1] = arr[j];
j--;
}
arr[j+1] = key;
System.out.printf("Insert %d at position %d%n", key, j+1);
}
}
}
```
在`insertionSort`方法中,我们首先取出当前要插入的元素`key`,然后从`key`的前一个元素开始向前遍历,如果当前元素`arr[j]`比`key`大,则将`arr[j]`向后移一位,直到找到一个`arr[j]`比`key`小的位置,将`key`插入到其中即可。同时,在插入完成后,输出`key`插入的位置即可。
运行以上代码,输出结果为:
```
Insert 11 at position 0
Insert 13 at position 2
Insert 5 at position 0
Insert 6 at position 1
```
阅读全文