@author silence丶你的名字
- java数组及Arrays创建一个int 类型数组 数组元素由键盘录入,每次打印插入排序的结果
初始数组元素1 for死循环 获取用户录入的数据,如果为9527 程序结束,否则拷贝一个新数组,进行排序
避免原始数组被排序 打印 输入排序前后的结果。
判断数组元素如果存满了,就扩容,每次扩容1
import java.util.Arrays;
import java.util.Scanner;/*** @author silence丶你的名字* java数组及Arrays创建一个int 类型数组 数组元素由键盘录入,每次打印插入排序的结果* <p>* 初始数组元素1 for死循环 获取用户录入的数据,如果为9527 程序结束,否则拷贝一个新数组,进行排序* 避免原始数组被排序 打印 输入排序前后的结果。* 判断数组元素如果存满了,就扩容,每次扩容1*/
public class MainTest {private static int arraySize = 1;private static Scanner scanner = new Scanner(System.in);public static void main(String[] args) {int[] array = new int[arraySize];for (int i = 0; true; i++) {array[i] = getNext();if (array[i] == 9527) {break;}System.out.println("未排序结果:" + Arrays.toString(array));int[] newArray = Arrays.copyOf(array, array.length);insertSort(newArray);System.out.println("插入排序结果:" + Arrays.toString(newArray));array = ifArray(array);}System.out.println("程序结束");}/*** 数组扩容,每次扩容1** @param array 原始数组* @return 满足条件返回新数组,否则返回原始数组*/private static int[] ifArray(int[] array) {if (array.length == arraySize) {return Arrays.copyOf(array, arraySize += 1);} else {return array;}}/*** @return 获取用户输入的数字*/private static int getNext() {System.out.println("----输入9527结束,请输入:----");try {return scanner.nextInt();} catch (Exception e) {System.out.println("非法输入默认为0!!!!");scanner = new Scanner(System.in);return 0;}}/*** 对数组排序** @param arrays 数组*/public static void insertSort(int[] arrays) {int i, j;for (i = 1; i < arrays.length; i++) {int temp = arrays[i];j = i - 1;while (j >= 0 && arrays[j] > temp) {arrays[j + 1] = arrays[j];j = j - 1;}arrays[j + 1] = temp;}}}