题目描述 使用插入排序对给定数组从小到大排序,不需要输出排序后的数组,需输出从第二个元素开始每个元素插入的的位置。 输入 第一行一个正整数n。(1<=n<=5e3) 第二行n个整数 数据保证在int范围内(保证没有重复数字) 输出 从第二个数开始输出每个数插在哪个位置。java
时间: 2024-03-06 19:47:06 浏览: 84
以下是Java实现插入排序及输出每个元素插入的位置的代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = scanner.nextInt();
}
for (int i = 1; i < n; 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.print(j + 1 + " ");
}
}
}
```
其中,输入的第一行为数组的长度n,第二行为n个整数,表示待排序的数组。程序首先读入这个数组,然后使用插入排序对其进行排序,并且在每次插入元素时输出该元素插入的位置,即为j+1。
阅读全文