[转载]:合并两个已排序好的int数组,并排序返回c#实现
2011-07-22 17:50
543 查看
http://www.cnblogs.com/relang99/archive/2008/09/09/1287572.html/// <summary>
/// 两个从小到大排序好的int数组,合并后也返回一个从小到大排序好的数组,
/// 包含两个数组中全部的元素
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
public static int[] MergeArray(int[] a, int[] b)
{
if( a == null || b== null )
throw new NotSupportedException();
int lena = a.Length;
int lenb = b.Length;
int[] c = new int[lena+lenb];
int i, j, n;
i = j = n = 0;
while (i < lena && j < lenb)
{
if (a[i] < b[j])
{
c[n++] = a[i++];
}
else if (a[i] > b[j])
{
c[n++] = b[j++];
}
else
{
c[n++] = a[i++];
c[n++] = b[j++];
}
}
if (i == lena)
{
while (j < lenb)
c[n++] = b[j++];
}
else
{
while (i < lena)
c[n++] = a[i++];
}
return c;
}
if ($ != jQuery) {
$ = jQuery.noConflict();
}
var isLogined = true;
var cb_blogId = 19731;
var cb_entryId = 1287572;
var cb_blogApp = "relang99";
var cb_blogUserGuid = "5759360b-63cf-dd11-9e4d-001cf0cd104b";
var cb_entryCreatedDate = '2008/9/9 14:37:00';
/// 两个从小到大排序好的int数组,合并后也返回一个从小到大排序好的数组,
/// 包含两个数组中全部的元素
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
public static int[] MergeArray(int[] a, int[] b)
{
if( a == null || b== null )
throw new NotSupportedException();
int lena = a.Length;
int lenb = b.Length;
int[] c = new int[lena+lenb];
int i, j, n;
i = j = n = 0;
while (i < lena && j < lenb)
{
if (a[i] < b[j])
{
c[n++] = a[i++];
}
else if (a[i] > b[j])
{
c[n++] = b[j++];
}
else
{
c[n++] = a[i++];
c[n++] = b[j++];
}
}
if (i == lena)
{
while (j < lenb)
c[n++] = b[j++];
}
else
{
while (i < lena)
c[n++] = a[i++];
}
return c;
}
if ($ != jQuery) {
$ = jQuery.noConflict();
}
var isLogined = true;
var cb_blogId = 19731;
var cb_entryId = 1287572;
var cb_blogApp = "relang99";
var cb_blogUserGuid = "5759360b-63cf-dd11-9e4d-001cf0cd104b";
var cb_entryCreatedDate = '2008/9/9 14:37:00';
相关文章推荐
- C# 合并两个int数组 合并后根据大小排序 并输出
- 两个有序数组的合并排序,Java代码实现,并去重复,考虑空间利用率问题
- 【Java实现】给出两个整型数组,将他们合并后从小到大排序并输出
- 剑指offer面试题java实现之题4之相关题目:两个排序数组合并
- c# 两个数组比较,将重复部分去掉,返回不重复部分的实现
- [转]比较高效地实现从两个不同数组中提取相同部分组成新的数组(只支持Int类型) [C#]
- 两个有序数组的合并排序,Java代码实现,并去重复,考虑空间利用率问题
- 实现两个有序单链表的合并。要求:随机创建两个单链表,实现单链表的排序,再对两个有序单链表进行合并。
- [leetcode]Merge Sorted Array (两个有序数组的合并 C语言实现)
- LintCode: 合并两个排序好的数组
- 面试题整理 4 合并两个排序的数组
- 两个数组合并排序
- 合并两个排序好的数组并升序排序
- C#中定义数组和一个简单排序算法实现。
- 【转载】c#实现控件数组
- C#实现两个N*N矩阵的乘法,矩阵必须由一维数组表示
- 编写一个void sort(int*x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件
- 基于php实现随机合并数组并排序(原排序)
- go语言实现两个数组合并(merge)(二)
- 最坏情况下,合并两个大小为n的已排序数组所需要的比较次数为