求一函数public string StringSort(string str)将字符串str按从小到大排序后重新输出。
如果大虾对自己的算法自信的话,请说出其优势。
谢谢。

解决方案 »

  1.   

    将字符串str按从小到大排序后重新输出
    ---不太明白是不是string str="bacdgfe" 
    输出abcdefg ?
      

  2.   


            public static string StringSort(string str)
            {
                char[] chars = str.ToCharArray();
                Array.Sort(chars);
                string result = string.Empty;
                foreach (char c in chars)
                    result += c.ToString();
                return result;
            }
      

  3.   

    string temp1="0001"
    string temp1="0002"
    string temp1="0003"
    string temp1="0004"排列这些字符串吗?
      

  4.   

    按照相应的需求写即可,规则定好了,再对译成Code
      

  5.   


    顶一下,.net2.0中Array.Sort是用的快速排序,效率很高
      

  6.   

    简化一下:char[] chars = str.ToCharArray();
    Array.Sort(chars);
    return new string(chars);
      

  7.   


    static string StringSort(string str)
    {
        char[] chars = str.ToCharArray();
        Array.Sort(chars);
        return new string(chars);

      

  8.   

    ArrayList类有现在的排序方法Sort()
      

  9.   

    char[] chars = str.ToCharArray(); 
    Array.Sort(chars); 
    return new string(chars); 
    这种方法性能比较高因为用+ 拼接字符串 损失性能很大我测了一下 一个用了100多毫秒 一个使用1毫秒左右 非常快 当然我的机器比较快 2.4双核 2G RAM
      

  10.   


    在C#中数组Sort()排序效率最高 准
      

  11.   

    我提的问题是一个面试题,题目就是这样的,
    好,我重新给个字符传:“cdeapabje”
    根据我提的问题写一个函数将它排序从小到大排序(从a到z的排序),自己写的。
      

  12.   


    哎,多此一举~~        static void Main(string[] args)
            {
                string str = "cdeapabje";
                char[] chars = new char[str.Length];
                for (int i = 0; i < str.Length; i++)
                {
                    chars[i] = str[i];
                }
                for (int i = 0; i < str.Length; i++)
                {
                    for (int j = i + 1; j < str.Length; j++)
                    {
                        if (chars[i] > chars[j])
                        {
                            char temp = chars[j];
                            chars[j] = chars[i];
                            chars[i] = temp;
                        }
                    }
                }
                str = new string(chars);
                Console.Write(str);
            }
      

  13.   

    ms自己的Array.Sort用的是二分法,据说效率还是不错的
    上面的应该改成Array.Sort<char>(chars); 可能会更好点,原来的应该是比较的对象引用,而不是对象值字符串的值是不可变的,要想修改字符串变量的值只能重新分配新的内存,把新的值复制进去
    result 不断被修改,这个效率不是太好string result = new string(chars);