算出有多少种排序            int i=1;
            for (int k = 1; k <= 6; k++)
            {
                i = i * k;
            }
            MessageBox.Show(i.ToString());如果是想显示出所有排序,
就要写个递归或循环的方法显示出来

解决方案 »

  1.   

    晕,排序方法有7种,你说的是哪一种?
    下面我给出酸法的性能,自己算吧
    排序方法            最好时间        平均时间        最坏时间    辅助空间     稳定性
    ___________________________________________________________________________________
    直接插入排序         O(n)            O(n^2)         O(n^2)        O(1)        稳定
    希尔排序                             O(n^1.3)                     O(1)        不稳定
    直接选择排序         O(n^2)          O(n^2)         O(n^2)        O(1)        不稳定
    堆排序               O(nlog2N)       O(nlog2N)      O(nlog2N)     O(1)        不稳定
    冒泡排序             O(n)            O(n^2)         O(n^2)        O(1)        稳定
    快速排序             O(nlog2N)       O(nlog2N)      O(n^2)        O(log2N)    不稳定
    归并排序             O(nlog2N)       O(nlog2N)      O(nlog2N)     O(n)        稳定
      

  2.   

    以前看到的一个方法,tryforeach (char[] result in numSort("12345".ToCharArray(), 0, 4))
    {
        foreach (char c in result)
            richTextBox2.Text += c;
        richTextBox2.Text += "\n";
    }IEnumerable<char[]> numSort(char[] input, int fromIndex, int toIndex)
    {
        if (fromIndex < toIndex)
        {
            char m = input[fromIndex];
            foreach (char[] right in numSort(input, fromIndex + 1, toIndex))
            {
                yield return right;            for (int i = fromIndex + 1; i <= toIndex; i++)
                {
                    char[] cc = new char[right.Length];
                    right.CopyTo(cc, 0);
                    cc[fromIndex] = cc[i];
                    cc[i] = m;
                    yield return cc;
                }
            }
        }
        else
            yield return input;    yield break;
    }
      

  3.   

    不知道对不对~~~
    class Program
        {
            static void Main(string[] args)
            {
                string[] result = GetStrings(new int[] { 1, 2, 3, 4, 5, 6 });
                foreach (string str in result)
                {
                    Console.WriteLine(str);
                }
                Console.WriteLine(result.Length);//共720
                Console.Read();
            }
            static string[] GetStrings(int[] nums)
            {
                if (nums.Length == 2)
                {
                    return new string[] { nums[0].ToString() + nums[1].ToString(), nums[1].ToString() + nums[0].ToString() };
                }
                List<string> allsub = new List<string>();
                for (int i = 0; i < nums.Length; i++)
                {
                    List<int> _param = new List<int>(nums);
                    _param.Remove(nums[i]);
                    int[] param = _param.ToArray();
                    string[] subs = GetStrings(param);
                    for (int j = 0; j < subs.Length; j++) {
                        allsub.Add(subs[j].ToString() + nums[i]);
                    }
                }
                return allsub.ToArray();
            }
        }
      

  4.   

    public static void Sort(string[] list)
            {
                string min = "";
                for (int i = 0; i < list.Length - 1; i++)
                {
                    for (int j = i + 1; j < list.Length; j++)
                    {
                        if (list[j].CompareTo(list[i]) < 0)
                        {
                            min = list[j];
                            list[j] = list[i];
                            list[i] = min;
                        }
                    }            }
            }