给定一个字符串数组,对字符串数组按照由小到大的顺序进行排序,并把重复的字符删去。

解决方案 »

  1.   

    呵呵,这个算法实现上有什么难度吗?HOHO。
    依我看首先排序,然后再删除重复字符吧,不考虑效率的话:public static char[] SortRemove(string s)
    {
        char[] ca = s.ToCharArray();    var q = from c in ca orderby c select c;    List<Char> ret = new List<char>();
        char last = '\0';
        foreach (char c in q)
        {
            if (c != last)
            {
                ret.Add(c);
            }
            last = c;
        }
        return ret.ToArray();
    }
      

  2.   

    我是用linq进行的排序,然后进行了一次排除重复的处理。
      

  3.   

    var q = from c in ca orderby c select c;
    问一下C#有这样的语法吗?这是做什么的
      

  4.   

    http://www.cnblogs.com/bbxie/archive/2008/06/19/570646.html这是删除重复元素的方法加上一个冒泡排序就搞定了int[] myArray = new int[] { 10, 8, 3, 5, 6, 7, 4, 6, 9 };
       // 取长度最长的词组 -- 冒泡法
       for( int j=1;j<myArray.Length;j ++ )
       {
        for(int i=0;i<myArray.Length - 1;i ++)
        {
         // 如果 myArray[i] > myArray[i+1] ,则 myArray[i] 上浮一位
         if( myArray[i]>myArray[i+1])
         {
          int temp = myArray[i];
          myArray[i] = myArray[i+1];
          myArray[i+1] = temp; 
         }
        }      
       }
      

  5.   

    Array.Sort
    不是已经给你做好了吗?
      

  6.   

    排序
    string[] s;
    s.ToList<string>().Sort();
      

  7.   

    ArrayList list = new ArrayList();
    list.Add("1");
    list.Add("4");
    list.Add("2");
    list.Add("2");
    //......添加数据
    list.Sort();string str=(string)list[0];
    for(int i=1;i < list.Count;i++)
    {
    if(str == (string)list[i])
    {    list.RemoveAt(i); i--; }
    else
    {    str = (string)list[i]; }
    }//排序可用class ComparerPoint:System.Collections.IComparer
    {
    public int Compare(object p1,object p2)
    {//根据不同需要修改
    if(p1 == p2)return 0;
    if(p1.X < p2.X)
    {
    return -1;
    }
    else if(p1.X > p2.X)
    {
    return 1;
    }
    else
    {
    return 0;
    }
    }
    public int CompareTo(object p1,object p2)
    {
    return Compare(x,y);
    }
    }
      

  8.   

               //init source char array value
               char[] sArray = new char[] { 'a','E','B','g','a','c','M','Q','s','p','B'};
               //sort array
                for (int j = 1; j < sArray.Length; j++)
                {
                    for (int i = 0; i < sArray.Length - 1; i++)
                    {
                        //compare ascii code value
                        if (sArray[i] > sArray[i + 1])
                        {
                            char temp = sArray[i];
                            sArray[i] = sArray[i + 1];
                            sArray[i+1] = temp;
                        }
                    }
                }
                //delete duplicate char
                List <char>  rList = new List<char>();
                char cTmp = '\0';
                for (int m = 0; m < sArray.Length; m++)
                {
                    if (sArray[m] != cTmp)
                    {
                        cTmp = sArray[m];
                        rList.Add(cTmp);
                    }
                }
                // save into new char array
                char[] rArray = rList.ToArray();