有一个升序的数组,要求插入一个元素,该数组顺序依然是升序。该数组{10,12,40,70}
package input.java;
import java.util.Scanner;
public class lizi2 {
public static void main(String[] args){
int temp = 0;
int arr[] = {10,12,40,70};
// 创建一个新数组,+1表示数组要扩容,里面是没有内容的空间
int arrNew[] = new int[arr.length+1];
Scanner myScanner = new Scanner(System.in);
for (int i = 0; i < arr.length; i++){
// 把arr数组的数值赋给arrNew数组
arrNew[i] = arr[i];
}
System.out.println("输入一个数字,插入该数组里面");
int addNum = myScanner.nextInt();
// 表示把新的数字放到arrNew数字最后面
arrNew[arrNew.length-1] = addNum;
// 让arr数组指向arrNew数组
arr = arrNew;
// 进行排序
for (int i = 0; i < arr.length - 1; i++){
for (int j = 0; j < arr.length - 1 -i; j++){
if (arr[j] > arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
System.out.println("输出该数组");
for (int i = 0; i < arr.length; i++){
System.out.print(arr[i]+"\t");
}
}
}
缺点:从时间复杂度上来看,效率很慢,需要每一个遍历比较。