当前位置:编程学习 > C#/ASP.NET >>

首字母排序算法的问题??

对{"zhangsan,zhangsi,liubei,zhangfei,guangyu"}进行排序,请注意这个题不光要排首字母,应该对每一个字母排。
有什么比较快的算法吗?给个思路啊~或是给个关键代码~(冒泡就算了。。。)
还有如果单纯的首字母排序我使用Arrays.sort()没有问题吧? --------------------编程问答-------------------- Arrays.sort()完全能达到你的要求了 --------------------编程问答--------------------
引用楼主 wh463775546 的回复:
对{"zhangsan,zhangsi,liubei,zhangfei,guangyu"}进行排序,请注意这个题不光要排首字母,应该对每一个字母排。
有什么比较快的算法吗?给个思路啊~或是给个关键代码~(冒泡就算了。。。)
还有如果单纯的首字母排序我使用Arrays.sort()没有问题吧?


Arrays.sort(),为什么不自己尝试下呢。。。 --------------------编程问答-------------------- zhangsan,zhangsi,liubei,zhangfei,guangyu

居然把刘关张和张三,张四放在一起。。。 --------------------编程问答--------------------
引用 3 楼 gxttr 的回复:
zhangsan,zhangsi,liubei,zhangfei,guangyu

居然把刘关张和张三,张四放在一起。。。

那个。。。Arrays.sort()我用了可以。。。但是要用算法表述出首字母排序和对每个字母排序啊。。。 --------------------编程问答-------------------- 都没的人说下吗?求高手啊!!!!!!!!!!! --------------------编程问答-------------------- Arrays.sort() 你试试 --------------------编程问答-------------------- 现在是对“每一个字母排”啊~各位神人么~给个意见么。。。 --------------------编程问答-------------------- 你到底什么意思嘛 --------------------编程问答-------------------- 一个个字母排,你的意思是不是按照字典序排? --------------------编程问答--------------------
引用 9 楼 pandm 的回复:
一个个字母排,你的意思是不是按照字典序排?

{"zhangsan,zhangsi,liubei,zhangfei,guangyu"}
如果首字母重复的话就因该是选取第二个字母排,这是我的理解。
最终的答案应该是liubei,guanyu,zhangfei,zhangsan,zhangsi
算法怎么写呢。。。。。 --------------------编程问答--------------------
引用 2 楼 gxttr 的回复:
引用楼主 wh463775546 的回复:
对{"zhangsan,zhangsi,liubei,zhangfei,guangyu"}进行排序,请注意这个题不光要排首字母,应该对每一个字母排。
有什么比较快的算法吗?给个思路啊~或是给个关键代码~(冒泡就算了。。。)
还有如果单纯的首字母排序我使用Arrays.sort()没有问题吧?


Arrays.sort(),为什么不自己尝试下……

{"zhangsan,zhangsi,liubei,zhangfei,guangyu"}
如果首字母重复的话就因该是选取第二个字母排,这是我的理解。
最终的答案应该是liubei,guanyu,zhangfei,zhangsan,zhangsi
算法怎么写呢。。。。。 --------------------编程问答--------------------
引用 10 楼 wh463775546 的回复:
引用 9 楼 pandm 的回复:
一个个字母排,你的意思是不是按照字典序排?

{"zhangsan,zhangsi,liubei,zhangfei,guangyu"}
如果首字母重复的话就因该是选取第二个字母排,这是我的理解。
最终的答案应该是liubei,guanyu,zhangfei,zhangsan,zhangsi
算法怎么写呢。。。。。


最终答案是guanyu,liubei,zhangfei,zhangsan,zhangsi, 字母表里,g在l前面吧

    class Program
    {
        static void Main(string[] args)
        {

            string[] s = new string[] { "zhangsan", "zhangsi", "liubei", "zhangfei", "guangyu", "zhangfei2" };
            Array.Sort(s, new MyComp());

        }
    }

    class MyComp : IComparer<string>
    {

        #region IComparer<string> Members

        public int Compare(string x, string y)
        {
            int result=0;
            int min = x.Length <= y.Length ? x.Length : y.Length;

            for (int i = 0; i < min  ; i++)
            { 
                result = x[i].CompareTo(y[i]);
                if (result != 0)
                    return result;
            }

            return x.Length - y.Length;
        }

        #endregion
    }

--------------------编程问答-------------------- arrays.sort();
没必要在这种问题上浪费时间啊!
你难道会比微软的人写的效率更高吗》? --------------------编程问答--------------------
string[] stringArray = new string[] { "zhangsan", "zhangsi", "liubei", "zhangfei", "guangyu", "zhangfei2" };
var query = from s in stringArray
            order by s[0]//随便你按哪个排
              select s;
--------------------编程问答--------------------

string[] s = new string[] { "zhangsan", "zhangsi", "liubei", "zhangfei", "guangyu", "zhangfei2" };
            var result = from i in s.ToList()
                         orderby i ascending
                         select i;
            foreach (string i in result)
                Console.WriteLine(i);
--------------------编程问答-------------------- LZ连基本的排序还没弄好。。。
你们还给他发linq代码。。。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,