请应用数组存储用户输入的10个整数,编写算法将该数组按照从小到大的顺序排列好。用户再输入1个整数,编写代码把它插入原数列中,要求仍然保持从小到大有序。 编写程序时应考虑到所插入数的各种可能性(比原来所有的数都小;比原来所有的数都大;在最大数和最小数之间
时间: 2023-06-27 19:07:10 浏览: 72
汇编程序 数组从小到大进行排序
5星 · 资源好评率100%
以下是Java语言的实现:
```java
import java.util.Scanner;
public class InsertSort {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[10];
System.out.println("请输入10个整数:");
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
// 插入排序
for (int i = 1; i < arr.length; i++) {
int temp = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > temp) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = temp;
}
System.out.println("排序后的数组为:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
System.out.println("请输入要插入的整数:");
int num = sc.nextInt();
int index = 0;
// 找到插入位置
for (int i = 0; i < arr.length; i++) {
if (num <= arr[i]) {
index = i;
break;
} else {
index = i + 1;
}
}
// 后移元素,腾出位置插入新元素
for (int i = arr.length - 1; i > index; i--) {
arr[i] = arr[i - 1];
}
arr[index] = num;
System.out.println("插入后的数组为:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
```
其中,插入排序使用的是从小到大排序的方式。插入新元素时,先找到插入位置,然后将后面的元素逐个后移,腾出位置插入新元素。
阅读全文