使用插入排序对给定数组从小到大排序,不需要输出排序后的数组,需输出从第二个元素开始每个元素插入的的位置。 输入 第一行一个正整数n。(1<=n<=5e3) 第二行n个整数 数据保证在int范围内(保证没有重复数字) 输出 从第二个数开始输出每个数插在哪个位置。java
时间: 2024-03-06 17:49:36 浏览: 49
好的,这是一道经典的排序算法练手题目。以下是 Java 代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
insertionSort(arr, n);
}
public static void insertionSort(int[] arr, int n) {
for (int i = 1; i < n; i++) {
int j = i - 1;
int temp = arr[i];
while (j >= 0 && arr[j] > temp) {
arr[j+1] = arr[j];
j--;
}
arr[j+1] = temp;
System.out.print((j+1) + " ");
}
}
}
```
输入样例:
```
5
3 1 4 2 5
```
输出样例:
```
0 0 2 1 4
```
希望能对你有所帮助!
阅读全文