数组排序后插入

package com.bzjy.test;
public class Test {
    /**
     * @排序插入
     */
    public static void main(String[] args) {
        int[] b = { 4, 3, 1, 5, 8, 7, 2, 9 };
        //显示原数组
        show(b, "原");
        //使用插入排序
        show(sort(b), "排序");
        //排序后插入
        show(insert(6, b), "插入后");
    }
    public static int[] sort(int arr[]) {
        int temp, j, i;
        for (i = 1; i < arr.length; i++) {
            temp = arr[i];
            for (j = i - 1; j >= 0 && temp < arr[j]; j--) {
                arr[j + 1] = arr[j];
            }
            arr[j + 1] = temp;
        }
        return arr;
    }
    public static void show(int arr[], String name) {
        System.out.print(name + "数组 :");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
        }
        System.out.println();
    }
    public static int[] insert(int num, int[] arr) {
        int size;
        size = arr.length;
        int loc = size;
        //由于你要插入一个数组那么数组内多余一个数据需要定义一个新的数组。此数组比原数组多一位。
        int[] newArr = new int[size + 1];
        //你升序排序后的数组,找到你要插入的数据的具体位置它一定比前一个数大
        for (int i = 0; i < size; i++) {
            if (num < arr[i]) {
                loc = i;
                break;
            }
        }
        for (int i = 0; i < loc; i++) {
        // 比插入数据的小的即是前面的值放在新的数组newArr中
            newArr[i] = arr[i];
        }
        // 将num放在 loc 的位置上
        newArr[loc] = num;
        for (int i = loc; i < arr.length; i++) {
        // 将比a大的值放在loc位置后的数组放入新的数组newArr中
            newArr[i + 1] = arr[i];
        }
        System.out.println("插入数字 :" + num);
        return newArr;
    }
}

时间: 2024-08-10 16:57:47

数组排序后插入的相关文章

多张表中数据组合后插入新表的方法

以mysql为例. 遇到这个问题的时候最先想到的方法就是先从各个表中查询出相应的数据后使用程序循环遍历组装后在插入到数据库中.这是最直观的解决办法,但是这个方法处理超大结果集的时候就出现问题,例如:超出内存限制,运行时间过长等等... 这时使用另外一种方法应该会有帮助,那就是使用mysql的on duplicate key update方法来分步骤组合数据. 现在有3张表a,b,c.每个表的结构如下: a表包含字段:id,a,b,c: b表包含字段:aID,d,e,f:字段aID对应表a中的id

探索Oracle之数据库升级七 11gR2 to 12c 升级完成后插入PDB

探索Oracle之数据库升级七 11gR2 to 12c 升级完成后插入PDB 前言:        从Oracle 12c开始,引入了容器数据库的概念,可以实现数据库插拔操作,如下图: 现在我们就来看看如何将11.2.0.4的数据库插入到12c的CDP里面去,让其成为一个PDB 数据库. 一.查看数据库信息: SQL> col BANNER format a80 SQL> set line 300 SQL> select * from v$version; BANNER CON_ID

Mysql 升级到 5.6 后插入语句时间字段报错:Incorrect datetime value: &#39;&#39; for column &#39;createtime&#39;

今天部署服务器项目运行,当遇见有时间数据对象的插入和更新操作的时候,就报错,如下: Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '' for column 'createtime' at row 1 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2868) at com.mysql.jdbc.My

算法——O(n)解决无序数组排序后的相邻最大差值

题目从这儿看到的 : https://mp.weixin.qq.com/s/2OXg67MfBuQjDPAJxxD8rQ,但是公众号上有一点讲错了,问题还挺严重的. 题目:有一个无序数组2,3,1,4,6,排序后是1,2,3,4,6,最大差值是 6 - 4 = 2. 先找到数组的max和min. 创建一个长度为N+1的桶,第一个桶存储最小值,最后一个桶存储最大值. 除去第一个和最后一个,也就是N-2个数往N-1个桶里放,那么至少会有一个桶为空. 遍历新数组Array,计算每一个非空桶中的最小值,

qq2440启动linux后插入u盘出现usb 1-1: device descriptor read/64, error -110,usb 1-1: device not accepting address 8, error -110

上位机:ubuntu14.04 64bit 下位机:qq2440 交叉编译器:arm-linux-gcc 3.4.1 下位机使用的linux内核版本:kernel2.6.13 1.插入u盘时错误信息如下: [[email protected] /home]# usb 1-1: new full speed USB device using s3c2410-ohci and address 6usb 1-1: device descriptor read/64, error -110usb 1-1

ruby(1.9.3) on rails新建项目后插入数据,时间和当前时间不符

下午16点25插入数据,显示的created time是8点15,我开始在application.rb中是这么设置的时区 config.time_zone = 'Beijing' 经过调查后修改为config.active_record.default_timezone = 'Beijing',即可显示当前时间. 据网上的说法:不加config.active_record.default_timezone = 'Beijing'显示的是utc的时间,加了之后才会转为本地时间

PostgreSQL根据某字段取平均值后插入另外字段实现一例

在做服务器负载状态监控的时候,为了避免负载峰值而造成无用报警的问题,我用的办法是取最近10次负载的平均值.之前这个需求直接在django中用程序解决,不过运行一段时间后速度不是很理想.现在解决的思路是先在插入新数据的时候让数据库把负载计算好放在另外一个字段,然后在django中删除计算每台服务器负载平均值的代码,负载值改成直接读取平均值.因为数据库服务器现在压力不大,增加触发器后对性能的影响这些就没怎么考虑. 计算平均值 PostgreSQL计算平均值的sql类似如下: with s as (s

python3.4.3 调用http接口 解析response xml后插入数据库

工作中需要调用一个http的接口,等不及java组开发,就试着用python去调用.Python版本3.4.3 完整的流程包括:从sqlServer取待调用的合同列表 -> 循环调用http接口 -> 将response写入xml文件 -> 解析xml -> 插入oracle数据库 要去公司旅游了,先把代码放着,以后再详细解释记录一下. #!/usr/bin/python3 import time import pymssql import urllib.parse import

杏彩平台出租mysql存储过程之遍历多表记录后插入第三方表中

自从学过存储过程后杏彩平台出租(www.1159880099.com )QQ1159880099,就再也没有碰过存储过程,这是毕业后写的第一个存储过程. 因为项目里设备的种类比较多,分别存在不同的数据表中,java中对应不同的java bean对象,想要统一管理有点困难.最近正好要开发一个功能模块,就是需要统一对设备进行处理,想着为了以后都能方便的统一处理各种设备,就从现在开始设计一套方案管理起这些项目吧. 如何统一管理呢? 如果从项目一开始设计的时候就能考虑到项目会发展成今天这样,当初就应该抽