java从键盘依次输入10个正整数,存放在数组中,每输入一个整数就进行排序,而不是最后排序

 我来答
一叶畅舟叶华源1297
2021-05-07 · TA获得超过1061个赞
知道答主
回答量:137
采纳率:100%
帮助的人:62.4万
展开全部

1、考点是插入排序

2、解题思路,声明固定长度数组,依次采集满足长度的数字后进行实时排序

3、需要注意的点,输入数字的长度和数组的长度完全靠约定,对健壮性影响较大,固可设计为resizeable形式。另采用每次输入都重新排还是定义一个排后数组,每次对新增的数字append后再排序,两者的效率不一样,下面给出前者示例,题主可自己尝试优化成后者

void sort(int arr[])
{
int n = arr.length;
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 = j - 1;
}
arr[j + 1] = key;
}
}

static void printArray(int arr[])
{
int n = arr.length;
for (int i = 0; i < n; ++i)
System.out.print(arr[i] + " ");

System.out.println();
}

public static void main(String args[])
{
ArrayList<Integer> numbers = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
System.out.println("...请输入数字...");
while (true) {
String input = scanner.next();
if(StringUtils.isNumeric(input)) {
numbers.add(Integer.valueOf(input));
int[] arr = numbers.stream().mapToInt(i -> i).toArray();
InsertionSort ob = new InsertionSort();
ob.sort(arr);
printArray(arr);
}
}
}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式