Java:数组中插入元素,并且降序排列

本文探讨了在Java中如何在已降序排列的数组中插入元素,重点解释了元素可能消失的原因及正确的操作步骤。通过示例程序说明,先降序排列,再插入元素,确保了数组的降序性质。程序中的关键在于两层循环结构,以实现完整的降序排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

int[] nums = {7,19,98,3,2,11};
int temp;// 空集
int num =1;// 要插入的元素
int index=nums.length-1;// 默认插入的位置在数组最后一位


// 如果仅依靠for(j)单次遍历,得到的排列为 {19,98,11,7,3,2}。“19,98”其实并未作比较
for(int k=0;k<nums.length;k++){
    // 遍历数组内的元素,进行降序排列
    for(int j=0;j<nums.length-1;j++) {
    //注意:是"nums.length-1",不是"nums.length"。
        if (nums[j] < nums[j + 1]) {
            temp = nums[j];
            nums[j] = nums[j + 1];
            nums[j + 1] = temp;
        }
    }
}

// 打印降序排列后的元素,应为{98,19,11,7,3,2}
System.out.println("降序:");
for (int j=0;j< nums.length;j++){
    System.out.println(nums[j]);
}


// 找到 num 插入的位置
for(int i=0;i<nums.length;i++){
    if(num>nums[i]){
        // 找到位置
        index=i;
        break;
    }
}


// 将index位置之后的元素向后移一位
for(int i=nums.length-1;i>index;i--){
    nums[i]=nums[i-1];
}


// 插入元素
nums[index]=num;
System.out.println("插入后的元素排序:");
for(int i=0;i<nums.length;i++){
    System.out.print(nums[i]+",");
}

// 打印结果为{98,9,11,7,3,1}

元素 “2” ,不见了  ? 往下看要点

元素插入的操作是1:先找到插入的位置;

                             2:然后排在该位置后面的元素后移,空出该位置,必有一个元素被移出;

                             3:再插入元素。

这就是为什么程序打印出来后没有元素 “2” 的原因,“2”在降序排列后,作为最后一位被移出。

要点:该程序一共用到两种方法——降序排列和插入。且先降序,再插入;如果操作顺序颠倒,那么势必要先移出一个元素,被移出的元素不一定比插入的元素小。以上述的程序举例,最终得到的结果会是{98,19,7,3,2,1},元素“11”在插入时被移出了。

值得注意的是降序循环一共两层——内层为单次循环,且所得结果并非完全降序排列;为了将所有元素进行对比,就要加一层外循环,即程序中的 for( k )。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值