2021-6-21 数组练习

数组练习

    //已知有个升序的数组 要求插入一个元素 该数组的顺序依然是升序
    //[10,12,45,90] 要求插入23后依然是升序
    //扩容+冒泡

    int[] arr={10,12,45,90};
    int a=23;

    int[] temp=new int[arr.length+1];

    for (int i = 0; i < arr.length; i++) {
        temp[i]=arr[i];
    }
    temp[temp.length-1]=a;


    int result =temp[0];
    for (int j = 0; j < temp.length-1; j++) {
        for (int i = 0; i < temp.length-1-j; i++) {
            if (temp[i]>temp[i+1]){
                result=temp[i];
                temp[i]=temp[i+1];
                temp[i+1]=result;
            }
        }
    }


    for (int i = 0; i < temp.length; i++) {
        System.out.print(temp[i]+"\t");
    }
}
//已知有个升序的数组 要求插入一个元素 该数组的顺序依然是升序
//[10,12,45,90] 要求插入23后依然是升序
//扩容+定位

int[] arr={10,12,45,90};
int insertNum=100;
int index=-1;

//遍历arr数组 如果发现insertNum<=arr[i] 说明i就是要插入的位置
//使用index 保留index=i
//如果遍历完后 没有发现 insertNum<=arr[i] 说明 index=arr.length 即添加到arr的最后

for (int i = 0; i <arr.length ; i++) {
    if(insertNum<=arr[i]){
        index=i;
        break;
    }
}

if(index==-1){
    index=arr.length;
}

int[] arrNew = new int[arr.length+1];

for (int i = 0,j=0; i < arrNew.length; i++) {
    if(i != index){
        arrNew[i]= arr[j];
        j++;
    }else{
        arrNew[i]=insertNum;
    }
}

for (int i = 0; i < arrNew.length; i++) {
    System.out.print(arrNew[i]+"\t");
}
int[] arr= new int[10];

//生成数组
for (int i = 0; i < arr.length; i++) {
    arr[i]=(int)(Math.random()*100)+1;
}

//打印数组
for (int i = 0; i < arr.length; i++) {
    System.out.print(arr[i]+"\t");
}
System.out.println();


int max=0;
int maxIndex=0;
//取最大值下标
for (int i = 0; i < arr.length; i++) {
    if(arr[i]>max){
        max=arr[i];
        maxIndex=i;
    }
}

System.out.println("最大值下标--"+maxIndex);
System.out.println("最最大值--"+max);

//数组中是否有8
int findNum=8;
int index=-1;
for (int i = 0; i < arr.length; i++) {
    if(arr[i]==findNum){
        System.out.println("数组中有8---------------");
        break;
    }
}
if(index==-1){
    System.out.println("------------数组中没有8");
}

//倒序排列
System.out.println("倒序排列");
for (int i = arr.length-1; i >0 ; i--) {
    System.out.print(arr[i]+"\t");
}

System.out.println();


//求平均数
double total=0;
for (int i = 0; i < arr.length; i++) {
    total += arr[i];
}

System.out.println("平均数是--"+(total / arr.length));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值