往一个已知数组中插入一个元素

package ch07;

import java.util.Arrays;

/** * Created by liwenj on 2017/7/19. */public class test2 {    public static void main(String[] args) {        char[] a = new char[]{‘b‘, ‘c‘, ‘e‘, ‘f‘, ‘g‘};//        Arrays.sort(a);//        System.out.println(a);u        char d = ‘d‘;        char[] temp = new char[a.length + 1];//定义一个新数组存储,temp数组比a多一个元素        for (int i = 0; i < a.length; i++) {            temp[i] = a[i];//{‘b‘, ‘c‘, ‘e‘, ‘f‘, ‘g‘}//temp[i]就是a[i]        }        temp[temp.length - 1] = d;//把d放到temp中的最后一个        //找插入位置        int index = 0;        //1.一直数组中最大的在倒数第一位,如果插入字符比原来字符中最大还要大        if (d > temp[temp.length - 2]) {            index = temp.length - 1;        } else if (d < temp[0]) { //2.如果插入字符比原来字符第一个还要小            index = 0;        }        //3.普通情况        for (int i = 0; i < temp.length - 2; i++) {            if (d > temp[i] && d < temp[i + 1]) {                index = i + 1;                break;            }        }        System.out.println(index);        //移动元素        for (int j = temp.length - 2; j >=index; j--) {            temp[j + 1] = temp[j];//往后挪

        }        temp[index] = d;        System.out.println(temp);    }

}
时间: 2024-07-29 13:09:36

往一个已知数组中插入一个元素的相关文章

使用二分查找向一个有序数组中插入一个数据

折半查找法找到一个元素在数组中的下标 * @param arr 数组 * @param key 要查找的元素 * @return 找到则返回元素在数组中的下标,如果没找到,则返回这个元素在有序数组中的位置 * 如:[1,4,6,7,10,11,15],查找8在数组中的位置,如果存在则返1,不存在则返回在7这个下标+1的这个位置上, 也就是说在返回10所在位置上的下标 */ public static int arrayIndexOf(int[] array,int key) { int min,

在有顺序的数列中插入一个元素后该数列仍然是有顺序的数组

/** 在有顺序的数组中插入一个元素后该数列仍然是有顺序的数组: 思路:先找到该元素的插入位置 插入数据时要先将数组中得元素后移,然后插入该元素 */ #include <stdio.h> #define  n 10 int main() { // 在有顺序的数列中插入一个元素后该数列仍然是有顺序的数列: int a[n] = {-1, 3, 6, 9, 13, 22, 27, 32, 49}; int insertVal; int insertLoc; scanf("%d"

在一组降序排列的数组中插入一个数据,插入后,数组中数据依然按降序排列

分析: 1.数组固定,是一个倒序的数组 2.插入一个数据,这个数据插在哪呢,要比较,与数组中所有的元素比较,这里需要一个循环,因为是降序的数组,所以当第一次遇到比自己小的,那么这个位置就是要插入的位置 3.因为上一步被占了位置,那么从这个插入的数据开始,后面的原本的数据都得向右移一位 /** * */ package com.cn.u4; import java.util.Scanner; /** * @author Administrator *向有序数组中插入学员成绩 * 在一组降序排列的数

链表中插入一个节点的三种情况

在链表中插入一个元素可以分为三种情况: 1.在节点的时候 2.在链表中间的任意位置 3.在链表的最后位置,也可以认为这种情况为追加(这个就留到追加的时候来实现) 下面是代码的实现 SN *Insert_S_Node( SN *head ) /* 传入的参数是被插入链表中的头指针 */ { SN *Insert_Node=NULL, *Dest_Node = NULL; /* Insert_Node是将要做成的新链表中的节点 Dest_Node是要插入的节点*/ INT32 OSM = 1, i3

向数据库中插入一个DateTime类型的数据到一个Date类型的字段中,需要转换类型。TO_DATE(&#39;{0}&#39;,&#39;YYYY-MM-DD&#39;))

需要指出的是,C#中有datetime类型,但是这个类型是包括小时,分钟,秒的.这个格式与数据库中的Date类型不符,如果将now设为datetime类型插入数据会失败. 需要通过TO_DATE('字段','YYYY-MM-DD'))转换.如下: string.Format("insert into tablename (TIME) values(TO_DATE('{0}','YYYY-MM-DD'))",now) 错误写法: string.Format("insert in

在PE文件中插入一个新节

这篇文章写如何在exe文件中插入一个新节,并且让它还能继续运行.这个节里保存的是导入表信息,指向一个自己写的动态库.在PE头中修改导入表地址位自己新构建的导入表. 能够实现这些需要对PE文件结构有着熟悉的掌握,可参考<Windows PE权威指南>.当初我看这本书的时候觉得很枯燥,结构信息不太好记.但是经过这个项目和一个自己实现LoadLibrary函数的项目后对PE文件结构就有了较熟悉的掌握. 首先,通过内存映射将目标EXE文件映射到内存中,保存原始结构,然后将原来的PE头部写入新文件. 之

使用cply移动jfs/jfs2文件系统从一个卷组到另一个卷组中

移动jfs/jfs2文件系统从一个卷组到另一个卷组中的目的是是当一个卷组中的空间越来越少,而另外一个卷组中的空间还比较有富余,我们可以把空间紧张中的卷组移动到空间较多的卷组中: [email protected]:/# uname -MLIBM,9131-52A 2 aix7001 [email protected]:/# lspvhdisk0          0007388ca583b447                    rootvg          active      hdi

[华为机试练习题]49.向升序单向链表中插入一个节点

题目 描述: 输入一个升序单向链表和一个链表节点,向单向链表中按升序插入这个节点. 输入为空指针的情况视为异常,另外不考虑节点值相等的情况. 链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; }; 详细描述: 接口说明 原型: ListNode* InsertNodeToList(ListNode* pListHead, ListNode* pInsertNode); 输入参数: ListNode* pListHead 单向链表

如何往clob类型中插入一个超过10000 bytes 的字符串

You'll have to assign the value to a variable & use the variable to insert the data DECLARE v_long_text CLOB; BEGIN v_long_text := 'your long string of text'; INSERT INTO table VALUES      (1, v_long_text); END; To make it clear: there are limits set