java50题----30插入数组
来源:互联网 发布:室内温度检测软件 编辑:程序博客网 时间:2024/06/04 18:38
/*有一个已经排好序的数组。现输入一个数,要求按照原来的排序规则将它插入到数组中。*/import java.util.Arrays;class Demo{private Demo(){}private static Demo instance = new Demo();public static Demo getInstance(){return instance;}public int[] insertArr(int[] arr, int n){//int[] newarr = new int[arr.length+1];//偷懒的写法,只能处理升序数组/*int[] a = Arrays.copyOf(arr, arr.length+1);a[a.length-1] = n;Arrays.sort(a);return a;*///int ret = Arrays.binarySearch(arr, n);//二分法查找,找到n时返回插入点脚标;没找到n时就返回//-插入点脚标-1//判断ret的正负值来继续操作。//常规写法int[] newarr = new int[arr.length + 1];int index = 0;for(int i = 0; i < arr.length; i++){if(n <= arr[i])//从左向右升序冒泡{index = i;break;}}//循环将旧数组的值复制到新数组中for(int i = 0; i < index; i++){newarr[i] = arr[i];}newarr[index] = n;for(int i = index+1; i < newarr.length; i++){newarr[i] = arr[i-1];}return newarr;}}class MainClass {public static void main(String[] args) throws Exception{Demo d = Demo.getInstance();int[] arr = {100,200,300,400,500};int n = 900;System.out.println("插入前的数组元素:");for(int i = 0; i < arr.length; i++){System.out.print(arr[i]+"\t");}int[] newarr = d.insertArr(arr, n);System.out.println("\n插入后的数组元素:");for(int i = 0; i < newarr.length; i++){System.out.print(newarr[i]+"\t");}}}/**/
0 0
- java50题----30插入数组
- java50题----31数组逆序输出
- java50题
- java50题----01兔子
- java50题----02素数
- java50题----04因式分解
- java50题----05成绩
- java50题----11三位数
- java50题----12奖金
- java50题----16九九乘法表
- java50题----23岁数
- java50题----03水仙花数
- java50题----09完美数
- java50题----10小球落地
- java50题----13求数字
- java50题----14第几天
- java50题----19打印菱形
- java50题----20分数序列
- Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败
- 利用JAMES搭建邮件服务器
- c++继承中的内存布局
- JavaScript:避免代码的重复执行
- java50题----29矩阵对角线和
- java50题----30插入数组
- 黑马程序员_Foundation_Nsstring,Nsrange,Nsarray,内存管理
- java50题----31数组逆序输出
- 黑马程序员_Foundation_NSSet,NSDictionary,NSValue,NSDate,NSNumber
- 黑马程序员_OC_ARC,block,protocol
- 黑马程序员_OC_第一个类,@property和@synthesize,Category,description方法
- java50题----32整数取四位
- 黑马程序员_OC_封装,继承,多态
- 我的mac OSX bash_profile文件