当前位置:网站首页>数组扩容、排序、嵌套语句应用
数组扩容、排序、嵌套语句应用
2022-07-27 19:07:00 【小唐学抓娃】
自己创建一个升序的数组,要求插入一个元素,该数组仍是升序。
思路:
1、此题需要自己从键盘输入一个数组
2、先输入数组的长度,再定义该长度的数组,最后输入
3、输入后用之前学的冒泡排序给数组排序
4、排序后用do{}while(true);结构来互动是否需要继续添加元素
5、添加元素则用到数组的扩容
6、扩容的思路:
= = 6.1申请新数组,并且容量是之前数组的容量+1
= = 6.2把之前的数组数据赋值给新数组
= = 6.3把需要添加的数据放在数组的结尾
= = 6.4把新数组的地址指向原来的数组(arr = arrNew)注意顺序不要搞反
7、扩容后可以重新排列,也可以与数组中的元素比较,然后交换位置(此处两种方法都有,各有利弊)重新排列算法复杂度较高,交换位置则需要考虑三种情况:插入的数最小、一般、最大…
8、输出
代码如下
import java.util.Scanner;
public class ArrayH01{
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入数组的长度");
int len = myScanner.nextInt();//接收数组长度
int[] arr = new int[len];
int temp ;
System.out.println("请给数组输入值");//接受键盘输入的值
for( int i = 0 ; i < len ; i++){
arr[i] = myScanner.nextInt();
}
for (int i = 0 ; i < len-1 ;i++ ) {//用冒泡排序
for (int j = 0 ; j < len - 1 - i ;j++ ) {
if(arr[j] >= arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
System.out.print("数组排序后的值为:");
for(int i = 0 ; i < len ; i++){
//输出排序好的数组序列
System.out.print(arr[i]+" ");
}
do{
System.out.print("是否需要插入元素?");
String ans = myScanner.next();
if( "是".equals(ans) ){ //判断键盘输入的值,如果输入"是",则插入
//否则跳出循环
int[] arrNew = new int[arr.length+1];
System.out.println("请输入要插入的元素值:");
//有两种方法
//一、此方法为插入比较 :
int flagNew = -1;
int numNew = myScanner.nextInt();
for( int i = 0 ; i < arr.length ; i++){
if((i == 0) && numNew <= arr[0]){//判断是否为最小元素,若是则插最前面
flagNew = 0;
}
else if( (i == arr.length - 1) && numNew >= arr[arr.length-1] ){
flagNew = arr.length;//判断是否为最大元素,若是则插 最后面
}
else if(numNew >= arr[i] && numNew <= arr[i+1] ){
flagNew = i+1;//一般的在中间的情况
}//判断添加的数在哪个位置
}
//找到位置后赋值
arrNew[flagNew] = numNew;
//再把 前面 那部分的值复制过来
for( int j = 0 ; j < flagNew ; j ++){
arrNew[j] = arr[j];
}
//再把 后面 那部分的值复制过来
for( int k = flagNew + 1 ; k < arrNew.length ;k++ ){
arrNew[k] = arr[k-1];
}
arr = arrNew;
//实现扩容
//二、此方法为重新排序:
// for(int k = 0 ;k < arr.length ;k++){
// arrNew[k] = arr[k];//给新数组赋值
// }
// arrNew[len] = myScanner.nextInt();//新加的值放在最后
// 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.println(arr[i]);
}
}else
{
System.out.println("退出添加");
break;
}
}while(true);
}
}
边栏推荐
- Puzzle (021) eliminate problems
- 高并发遇到死锁了,如何搞?
- Idea connects to MySQL database and performs SQL query operations
- @The difference between Autowired annotation and @resource annotation
- Instructions - Worthington reverse transcriptase, recombinant HIV testing program
- 自研5G芯片商用推迟?未来4年苹果iPhone都将采用高通5G芯片
- MobileVIT学习笔记
- Dual process theory and triple mental model
- 三星最先进EUV产线已投产:今年7nm产能将是去年3倍
- 腾讯云[HiFlow】| 自动化 -------HiFlow:还在复制粘贴?
猜你喜欢

聊聊 MySQL 事务二阶段提交

Worthington蘑菇多酚氧化酶的特性及测定方案

中英文说明书丨 AbFluor 488 细胞凋亡检测试剂盒

综合设计一个OPPE主页--页面的精选配件的设计

Pytest failed and rerun

Idea connects to MySQL database and performs SQL query operations

Characteristics and determination scheme of Worthington mushroom polyphenol oxidase

Search, insert and delete of hash table

Characteristics of exonuclease in Worthington venom and related literature

Why use MQ message oriented middleware? These questions must be solved
随机推荐
CocoaPods 重装
一篇文章带你走进pycharm的世界----别再问我pycharm的安装和环境配置了!!!
The new CTO strongly prohibits the use of calendar?
What are the product performances of industrial Ethernet switches?
LinkedList underlying source code
JVM-内存模型 面试总结
Design of noise reduction link based on DSP
软件测试面试题:设计系统测试计划需要参考的项目文档?
30 minutes to thoroughly understand the synchronized lock upgrade process
@Detailed introduction of requestparam annotation
@Autowired注解与@Resource注解的区别
综合设计一个OPPE主页--页面的搜素欧珀部分的样式
Postgresql源码(65)新快照体系Globalvis工作原理分析
UNITY--读取Excel
Who is the sanctity of the six Chinese enterprises newly sanctioned by the United States?
ORA-27300,ORA-27301,ORA-27302,ORA-27303,TNS-2518,TNS-12549,TNS-12560,TNS-00519等告警处理
Characteristics of exonuclease in Worthington venom and related literature
App test positioning method
美国将禁止所有中国企业采购美国芯片?特朗普这样回应
Huawei establishes global ecological development department: fully promote HMS global ecological construction