class Sort
{
int[] arr;
int[] arrb;
public sort(int[] a)
{
arr = a;
int n = a.Length;
arrb=new int [n];
}
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[n] = arrb[n];
}
public void getSorted() //得到排序后的数组
{
for (int i = 0; i < arr.Length; i++)
Console.Write(arr[i] + " ");
}
}