- 浏览: 1588730 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
数据的复制,插入,合并
package com.itheima.arrs; import java.util.Arrays; import java.util.Scanner; /*** * 对数组元素执行各种操作的类 * @author Bin * */ public class TestOperatorArry { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("===========1.数组复制"); copy(); int [] a={1,2,3,12}; int [] b={5,6,7,8}; System.out.println("===========2.数组合并"); int [] c=combine(a, b); System.out.println("===========3.数组插入"); insert(); } //数组复制 public static void copy(){ int [] array=new int[]{1,2,3,4}; int [] temp1=new int[array.length]; //声明一个数组的长度为 array数组的长度 int [] temp2=new int[array.length]; System.arraycopy(array, 0, temp1, 0, array.length); System.out.println("使用 System.arraycopy方法复制的结果\n"+Arrays.toString(temp1)); temp2=array; System.out.println("使用 赋值元算符号=方法复制的结果\n"+Arrays.toString(temp2)); } //数组插入 public static void insert(){ int i,j; int n=5; int num[]=new int[n+1]; for (i = 0; i < num.length-1; i++) { num[i]=(i+1)*6; } int length=num.length; System.out.println("插入数字之前的数组为:"); for ( i= 0; i < num.length; i++) { if(num[i]==0) System.out.print("存数空间"); else System.out.print(num[i]+"\t"); } System.out.println(); System.out.println("输入一个要插入的数"); Scanner san=new Scanner(System.in); int in=san.nextInt(); // 查找合适的位置 for(i=0;i<length-1;i++){ if(num[i]>in) break; } //将 合适位置后的数 都后移动 for(j=length-1;j>i;j--){ num[j]=num[j-1]; } num[i]=in; for(i=0;i<length;i++) System.out.print(num[i]+"\t"); System.out.println(); } //数据合并 及排序 public static int [] combine(int [] a,int [] b){ int alen=a.length; int blen=b.length; int length=alen+blen; int i,j; System.out.println("合并前的数据"); for (i = 0; i < alen; i++) System.out.print(a[i]+"\t"); System.out.println(); for (i = 0; i < blen; i++) System.out.print(b[i]+"\t"); System.out.println(); int [] c=new int[length]; for (i=0,j=0; i<alen && j<blen;) { if(a[i]<b[j]){ c[i+j]=a[i]; i++; }else{ c[i+j]=b[j]; j++; } } //将剩下 没有比较完的数据 添加到 新的数组后面 if(i==alen) System.arraycopy(b, j, c, alen+j, blen-j); if(j==blen) System.arraycopy(a, i, c, blen+i, alen-i); System.out.println("合并后的新数组:"); for (int k = 0; k < c.length; k++) System.out.print(c[k]+"\t"); System.out.println(); return c; } }
发表评论
-
检测一个字符串是否在jvm的常量池中
2018-12-18 17:34 995public static boolean inPool( ... -
UTC时间, GMT时间 ,夏令时
2017-08-18 15:12 2280经常混淆于此,特地研究了一下,记录在此以备忘。 整个地 ... -
java 反射List
2017-02-18 01:58 5650package com.enhance.reflect; ... -
JDK1.5 Exchange 两个线程互换数据
2016-08-04 18:00 980import java.util.concurrent ... -
JDK1.5 CountDownLatch
2016-08-04 16:25 1054/* * 还有一个利用场景: ... -
java CyclicBarrier 循环障碍阻塞
2016-08-03 23:54 1005//一个同步辅助类,它允许一组线程互相等待,直到到达某个公 ... -
java 信号灯 Semaphore
2016-08-03 23:53 1822更多介绍http://blog.csdn.net/java20 ... -
java 使用读写锁设计一个缓存模型
2016-08-03 23:49 1416import java.util.HashMap; ... -
java 读写锁
2016-08-03 23:46 813import java.util.Random; i ... -
java 多个线程之间同步通信
2016-08-02 17:16 2396import java.util.concurrent ... -
jdk1.5 锁 Lock 和 Condition
2016-08-02 17:03 922// lock 练习 public class Lock ... -
JDK1.5 获取线程执行结果 Callable Future
2016-08-02 15:08 1171import java.util.Random; i ... -
JDK1.5 线程池
2016-08-02 14:48 800import java.util.concurrent ... -
java 多线程ThreadLocal
2016-08-02 00:13 1144import java.util.Random; ... -
java 定时器 Timer
2016-08-01 16:53 3889import java.util.Calendar; ... -
java 多线程同步+通信
2016-08-01 16:48 964/** *父子线程 交替打印10 次, 100次 ... -
java 线程同步
2016-08-01 16:43 1020import java.util.concurrent.l ... -
java多线程练习
2016-08-01 16:35 1838Java 传统多线程 Java 多线程同步 Java 多线 ... -
java 传统多线程
2016-08-01 16:34 1001/** * 传统多线程 */ public ... -
java 图片,剪切,缩放
2016-01-06 10:21 2228package out; import ja ...
相关推荐
Java数组: Java数组排序:冒泡排序、选择排序 、插入排序 、快速排序、希尔排序...三种Java数组复制方法 Java数组最大最小值 四种合并Java数组方法 Java数组升降序排序 Java数组查找:二分查找、顺序查找、插值查找法
数组的合并与排序是常见的操作,尤其是在处理大量数据时。在这个场景中,我们要讨论如何在C语言中将两个已排序的数组合并成一个新的排序数组。 首先,让我们了解数组的基本概念。数组是由相同类型元素构成的集合,...
循环内部的判断是根据两个数组当前末尾元素的大小来决定将哪个元素插入到nums1的末尾。如果nums1[m-1]大于nums2[n-1],则从nums1中移除并替换,否则从nums2中移除。这样保证了每次合并都是按升序进行的。最后,如果...
在C语言中,有序合并两个数组是常见的数据操作任务,特别是对于排序算法的理解和实现有着重要意义。本节我们将详细探讨如何在数组A上有序合并数组B,以及如何通过代码实现和测试来确保其正确性。 首先,我们面临的...
### 一种快速的排序法—插入合并排序法 #### 概述 在计算机科学领域,排序算法是一项基础且重要的技术,广泛应用于数据管理和处理过程之中。根据数据存储位置的不同,排序算法可以分为内排序和外排序两大类。本文...
六、数组复制与合并 Java提供了System.arraycopy()方法用于复制数组,Arrays类中的copyOf()和copyOfRange()方法则可以用来创建数组副本或部分数组副本。合并两个数组可以创建新数组,并逐个复制元素。 七、源代码...
给定两个已排序的数组A1和A2,我们需要将A2中的元素插入到A1的末尾,同时保持整个结果数组是有序的。为了提高效率,我们可以采用从后往前的策略进行合并,这是因为这种策略可以避免不必要的元素移动。 以下是实现这...
C++中,可以使用迭代器或指针来遍历数组,并通过比较和插入操作来实现合并。以下是一个简单的实现方式: ```cpp #include using namespace std; void mergeSortedArrays(int arr1[], int m, int arr2[], int n) {...
因此,所有这些方法都面临同样的潜在问题:当数组过大时,可能会遇到内存限制,因为元素需要被复制到堆栈中。某些JavaScript引擎可能还有对数组长度的限制,超过这个限制可能会导致错误。 在实际开发中,应根据具体...
你需要了解如何创建、遍历、修改数组,以及如何将一个数组的元素复制到另一个数组。 4. **条件语句**:在实现解决方案的过程中,会用到if-else语句进行元素大小的比较和指针的移动。 5. **边界条件**:需要考虑当...
重复此过程直到一个子数组为空,然后将另一个子数组的所有元素复制到新数组中。 C语言实现合并排序的代码框架如下: ```c void mergeSort(int arr[], int left, int right) { if (left ) { int mid = left + ...
这里使用了一个新的临时数组`destination[]`,长度比原数组多一个,然后将原数组的元素复制到新数组中,最后在指定位置插入新元素,然后返回新数组。 除此之外,我们还可以看到其他与数组相关的操作,如获取数组...
`CArray`类还提供了许多其他功能,如复制数组、合并数组、查找特定元素等。它的内部实现采用了动态内存管理,因此在使用过程中需要注意内存泄漏问题,确保正确地使用`Add()`、`InsertAt()`和`RemoveAt()`等函数。 ...
2. 插入和删除元素:提供在指定位置插入和删除元素的方法。 3. 访问元素:通过下标运算符`[]`提供访问元素的能力。 4. 大小调整:增加或减少数组容量。 5. 其他操作:如排序、查找、复制等。 二、ArrayList与Array...
这个函数通常通过两个指针分别遍历两个子数组,比较它们的元素并选择较小的插入到新数组中。 ```cpp void merge(int arr[], int l, int m, int r) { int i, j, k; int n1 = m - l + 1; int n2 = r - m; // ...
例如,如果当前数组大小为N,当需要添加第N+1个元素时,可以重新分配大小为2N的新数组,然后将旧数组的所有元素复制到新数组中。 在压缩包中的"1.2-DArray_Max(Sample)"文件可能是一个示例程序,展示了如何实现这些...
在本章中,我们主要讨论了如何利用合并排序算法来对一个包含n个元素的数组进行升序排列。 首先,插入排序(InsertionSort)被提及作为对比,它的效率较低,最坏情况下需要执行的时间复杂度为Θ(n^2),而最好的情况...
5. **数组操作**:包括复制数组、合并数组、反转数组等,熟悉Java提供的Arrays类中的方法。 6. **异常处理**:当尝试访问超出数组范围的索引时,会抛出ArrayIndexOutOfBoundsException,学习如何捕获和处理这种异常...
- 在合并过程中,如果发现一个子数组为空,可以避免不必要的比较和复制,直接将另一个子数组复制过来。 6. **应用场景**: - 归并排序适用于大型数据集,如数据库和大规模数据分析。由于其稳定性和效率,常被用于...
然而,由于需要额外的空间来存储辅助数组,它在空间需求上比原地排序算法如快速排序或插入排序要高。在实际应用中,如果内存不是主要限制因素,而排序速度和稳定性更为关键,合并排序是一个理想的选择。