递归的版本C# 归并的思想 先分到最小 在2 2合并并切排序 谁小谁插进临时数组的第一位 临时index开始++
class Program
{
static void Main(string[] args)
{
int[] arr = new int[] { 8, 4, 5, 7, 1, 3, 6, 2 };
mergeSort(arr, 0, arr.Length - 1);
for (int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + ",");
}
}
// 归并排序
static void mergeSort(int[] arr, int left, int right)
{
// 如果 left == right,表示数组只有一个元素,则不用递归排序
if (left<right)
{// 把大的数组分隔成两个数组
int mid = (left + right) / 2;
// 对左半部分进行排序
mergeSort(arr,left,mid);
// 对右半部分进行排序
mergeSort(arr,mid+1,righ