数组练习题

已知有一个升序的数组,要求插入有个元素,该数组顺序依然是升序,比如:[10,12,45,90],添加23后,数组为[10,12,23,45,90]

//index是数字插入的位置,遍历时,index = i
//遍历数组,如果发现insertNum <= arr[i],说明i就是要插入的位置
//如果遍历完后,没有发现insertNum <= arr[i],说明index = arr.length,即将插入的数字排到最后
Scanner sc = new Scanner(System.in);
int[] arr = {10,12,45,90};
int[] arrNew =new int[arr.length + 1];
System.out.println("请输入您要插入的数字");
int num = sc.nextInt();
int index = -1 ;
for(int i = 0 ; i < arr.length ; i++){
if (num <= arr[i]){//如果插入的数字,小于下标为i的数字,那么此处就是num要插入的位置
index = i;//记录要插入的位置
break;
}
}
for(int i = 0 , j = 0 ; i < arrNew.length ; i++){
if (i != index) { //如果每走到要插入的位置,那么将旧数组的内容插入新数组,同时j代表旧数组的遍历,j往前走一位,这种情况也包括插入发生在最后一位,前面的全部拷贝就数组的内容。
arrNew[i] = arr[j];
j++;
}else{
arrNew[i] = num;
}
}
arr = arrNew; //重定向将新数组指向原来的数组;
System.out.println("========插入后的新数组========");
//遍历数组
for (int i = 0 ; i < arr.length ; i++){
System.out.print(arr[i]+" ");
}

posted on   老菜农  阅读(40)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

导航

统计信息

点击右上角即可分享
微信分享提示