二路归并算法c#实现
来源:互联网 发布:java程序员面试 pdf 编辑:程序博客网 时间:2024/05/16 08:17
class Program
{
static void Main(string[] args)
{
int [] arr1={1,3,5,7,9};
int [] arr2={2,4,6,8,10};
int [] result=new int [arr1.Length+arr2.Length];
Merge merg=new Merge();
merg.Sort(arr1, arr2, result);
for (int i = 0; i < result.Length; i++)
Console.WriteLine(result[i]);
Console.Read();
}
}
/// <summary>
/// 二路归并算法
/// </summary>
class Merge
{
public void Sort(int[] X,int[] Y, int[] Z)
{
int i = 0;
int j = 0;
int q = 0;
//int u = Z.Length;
while (i <= X.Length-1 && j <= Y.Length-1)
{
if (X[i] <= Y[j])
{
Z[q] = X[i];
i++;
}
else
{
Z[q] = Y[j];
j++;
}
q++;
}
while (i <= X.Length-1)
{
Z[q] = X[i];
i++;
q++;
}
while (j <= Y.Length-1)
{
Z[q] = Y[j];
j++;
q++;
}
}
public void Sort(int[] X, int s, int t, int u, int[] Z)
{
int i = s;
int j = t + 1;
int q = s;
while (i <= t && j <= u)
{
if (X[i] <= X[j])
{
Z[q] = X[i];
i++;
}
else
{
Z[q] = X[j];
j++;
}
q++;
}
while (i <= t)
{
Z[q] = X[i];
i++;
q++;
}
while (j <= u)
{
Z[q] = X[j];
j++;
q++;
}
}
}
- 二路归并算法c#实现
- 实现二路归并排序算法
- 二路归并算法的实现
- 二路归并算法
- 二路归并算法
- 二路归并算法
- 二路归并算法
- 插入排序算法&二路归并排序算法java实现
- C#排序算法——二路归并法
- 归并算法 c#实现(递归实现)
- 二路归并算法非递归C实现
- 二路归并排序算法实现-完整C语言程序
- 二路归并算法的实现方法,用到vector容器
- 二路归并排序算法
- 二路归并排序算法
- 二路归并排序算法
- C#下的归并排序算法实现
- 归并排序算法(C#实现)
- squid内网代理简易装载
- 《程序设计教程-用C++语言编程》的解答好久没更新了,有朋友需要,俺打算最近开始更新。
- prototype.js 代码解读及使用方法之最详细中文版
- 与设备无关的位图(DIB)
- JavaScript Validation Framework(JSValidation)用户手册
- 二路归并算法c#实现
- 孙鑫 "第一个Windows程序" 的VS2005版
- 导师的权利
- Android快速入门
- 依赖于设备的位图(DDB)
- Server.Transfer和Response.Redirect的区别
- 位图
- 用个循环链表解决约瑟夫环问题
- 迟到的正义以牺牲另一种正义的代价来到——今天从法院领了被拖欠3年多的工资。