zoukankan      html  css  js  c++  java
  • 在一组降序排列的数组中插入一个数据,插入后,数组中数据依然按降序排列

      分析:
     
      1、数组固定,是一个倒序的数组
      
      2、插入一个数据,这个数据插在哪呢,要比较,与数组中所有的元素比较,这里需要一个循环,因为是降序的数组,所以当第一次遇到比自己小的,那么这个位置就是要插入的位置
      
      3、因为上一步被占了位置,那么从这个插入的数据开始,后面的原本的数据都得向右移一位
    

    /**
     * 
     */
    package com.cn.u4;
    
    import java.util.Scanner;
    
    /**
     * @author Administrator
     *向有序数组中插入学员成绩
     * 在一组降序排列的数据中插入一个数据,插入后,数组中数据依然按降序排列
     */
    public class InsertNum {
        public static void main(String[] args) {
            //要确保插入数据有位置,必须数组长度多一位,所以定义数组的时候,要这样定义
            int[] nums=new int[6];
            nums[0]=789;
            nums[1]=100;
            nums[2]=89;
            nums[3]=78;
            nums[4]=65;
            
            //让用户输入插入数据
            Scanner input=new Scanner(System.in);
            System.out.print("请输入数据:");
            int want=input.nextInt();
            //拿用户输入的数据和原来数组中的数据去比较
            
            //找到要插入的位置,下标,第一次比别人大
            int index=-1; //下标初始值,可以随意,它在后面也还是会被赋值的,所以这里只是为了不报错给个初始值,除数组下标0.。。。。5以外,都可以
            for(int i=0;i<nums.length;i++){
                if(want>nums[i]){
                    index=i;
                    break;//只要查找到第一次找到比输入值小的,就可以了,所以用break来结束for循环
                }
            }
            System.out.println("要移动到的下标是:"+index);
            //插入数据,其后数据依次向右移一位,这里要分析一下,
            //因为上面定义的num[5]也就是第6个位置没有被使用,是空的,那么我们要把num[4]移动到num[5]上来,依此类推,在index位置处后面的依次都要向右移一位
    
            for(int i=nums.length-1;i>0;i--){
                if(index==i){//只移从插入那个坐标开始以及后面的数据
                    break;
                }
                nums[i]=nums[i-1];//把前一位赋值给后一位
            }
            
            nums[index]=want;//把输入的值赋给index坐标的位置
            
            //使用增强型循环数组
            for(int num:nums){
                System.out.print(num+"	");
            }
            //输出数组
            
        }
    }
    
    
    
     
  • 相关阅读:
    搭建yum服务器
    linux 网卡
    yum安装包另存
    CentOS下VMware用桥接模式,静态ip上外网
    linux挂载硬盘以及卸载硬盘
    Word2010如何编辑好了直接发布csdn博文?
    【更新】用word文档来发布到csdn等博客上边免去一张张上传图片的烦恼
    在word上写博客直接发到CSDN
    word上传博客教程
    Word写博客-使用Word2013发布博文到博客园
  • 原文地址:https://www.cnblogs.com/sincoolvip/p/5440951.html
Copyright © 2011-2022 走看看