归并排序算法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] + " ");
}
}
{
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] + " ");
}
}
相关文章推荐
- 根据Merge Sort原理, 自己实现的归并排序算法+详细注释+代码(C#,C/C++) [分享]
- 根据Merge Sort原理, 自己实现的归并排序算法+详细注释+代码(C#,C/C++) [分享]
- C/C++实现如下 根据Merge Sort原理, 自己实现的归并排序算法+详细注释+代码(C#,C/C++)
- In-place Merge Sort (原地归并排序)
- Merge sort in C++
- 分治法排序 Thinking in MergeSort
- In-place Merge Sort (原地归并排序)
- Numeric String Sort in C#
- 使用C#详解常用排序算法(三):归并排序(Merge Sort)
- ArrayList.Sort method in C#
- Program work 12. Merge Sort in Java
- In-place Merge Sort (原地归并排序)
- In-place Merge Sort 原地并归排序
- 原地归并排序(In-place merge sort)
- mergesort in python
- Merge Sort in Go (Golang)
- STL:原地归并排序模板(InplaceMergeSort)
- Algorithm backup ---- Merge Sort(归并排序算法)
- in place merge sort (分析)
- In-Place Merge Sort(这个描述实在太简单了,我一下子就明白了!不过这算MergeSort吗?算插入排序还差不多)