用C#写了个归并排序,让大家提点意见,最好是贴上自己的。一起共勉......
   public class SortLib
    {
        public int[] MergeSort(int[] data)
        {
            if (data.Length < 2)
            {
                return data;
            }
            else
            {
                int mid = data.Length / 2;
                int[] left = new int[mid];
                int[] right = new int[data.Length - mid];
                Array.Copy(data, 0, left, 0, left.Length);
                Array.Copy(data, mid, right, 0, right.Length);                int[] leftSort = MergeSort(left);
                int[] rightSort = MergeSort(right);                return Merge(leftSort, rightSort);
            }
        }
                 private int[] Merge(int[] leftDate,int[] rightDate)
        {
            int[] tmp = new int[leftDate.Length + rightDate.Length];
            int rightIndex = 0;
            int curIndex = 0;
            for (int i = 0;i< leftDate.Length;i++)
            {
                for (int j = rightIndex; j < rightDate.Length; j++)
                {
                    if (leftDate[i] > rightDate[j])
                    {
                        tmp[curIndex++] = rightDate[j];
                        rightIndex++;
                    }
                }
                tmp[curIndex++] = leftDate[i];
            }            if (curIndex < tmp.Length - 1)
            {
                Array.Copy(rightDate, rightIndex, tmp, curIndex, tmp.Length - curIndex);
            }            return tmp;
        }
    }