您的位置:首页 > 编程语言 > C#

归并排序算法MergeSort in C#

2009-02-16 22:14 302 查看
class Sort
{
int[] arr;
int[] arrb;
public sort(int[] a)
{
arr = a;
int n = a.Length;
arrb=new int
;
}
public void merge_sort(int low,int high)
{
if (low >= high)
return;
int mid = (low + high) / 2;
merge_sort(low,mid);
merge_sort(mid+1,high);
int i = low;
int j = mid + 1;
int k = low;
while((i<=mid)&&(j<=high))
{

if (arr[i] <= arr[j])
{
arrb[k] = arr[i];
i++;
}
else
{
arrb[k]=arr[j];
j++;
}
k++;
}
while (j <= high)
{
arrb[k] = arr[j];
j++;
k++;
}
while (i <= mid)
{
arrb[k]=arr[i];
i++;
k++;
}
for (int n = low; n < k; n++) //覆盖原来的数组
arr
= arrb
;
}
public void getSorted() //得到排序后的数组
{

for (int i = 0; i < arr.Length; i++)
Console.Write(arr[i] + " ");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: