.net内Array和ArrayList所带Sort方法,用的是quick sort非稳定算法,几乎已经是最快了
稳定排序则需要自己实现冒泡算法

解决方案 »

  1.   

    换个思路,楼主的排序主要不是标准的字符串排序,所以有点麻烦,应该先格式化一下字符串,比如:
    A1.txt -> A001.txt
    A12.txt -> A012.txt
    A2.txt -> A002.txt
    1A.txt -> 001A.txt
    12A.txt -> 012A.txt
    2A.txt -> 002A.txt
    主要是数字格式化位定长的,位数可以根据实际定,我这里定3位。
    然后在使用系统的排序就可以,排序后再转换为原来的样式。
      

  2.   

    不格式化也可以
    给Sort方法提供一个实现了IComparer接口的类型的对象即可
      

  3.   

    http://community.csdn.net/Expert/topic/3802/3802711.xml?temp=.4805109
    另一个帖子的答案
    public class CustomComparer:System.Collections.IComparer
    {
    public int Compare(object x, object y){
    string s1 = (string)x;
    string s2 = (string)y;
    if (s1.Length > s2.Length) return 1;
    if (s1.Length < s2.Length) return -1;
    for (int i = 0; i < s1.Length; i++) {
    if (s1[i] > s2[i]) return 1;
    if (s1[i] < s2[i]) return -1;
    }
    return 0;
    }
    }