求一个高效的排序算法 .net内Array和ArrayList所带Sort方法,用的是quick sort非稳定算法,几乎已经是最快了稳定排序则需要自己实现冒泡算法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 换个思路,楼主的排序主要不是标准的字符串排序,所以有点麻烦,应该先格式化一下字符串,比如:A1.txt -> A001.txtA12.txt -> A012.txtA2.txt -> A002.txt1A.txt -> 001A.txt12A.txt -> 012A.txt2A.txt -> 002A.txt主要是数字格式化位定长的,位数可以根据实际定,我这里定3位。然后在使用系统的排序就可以,排序后再转换为原来的样式。 不格式化也可以给Sort方法提供一个实现了IComparer接口的类型的对象即可 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; }} 求解.Unicode编码形式的char[],怎么转成ASCII编码形式的char[]? 求正则表达式 C#Remove()方法问题 无法将类型"char[]"隐式转换为"char" 关于datagrid高性价比问题!!!!!!!! 快捷方式 请教各位大虾,,怎样自制 .DLL 文件 c#做的群聊软件如何更改背景色 关于console prompt 管理员权限的问题 有什么方法把一个应用程序做成系统的服务啊? COM+是什么东西?好用吗?有什么介绍它的好书?请各位告诉我?谢谢? 怎样用C#来进行字符串数组的自然排序
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位。
然后在使用系统的排序就可以,排序后再转换为原来的样式。
给Sort方法提供一个实现了IComparer接口的类型的对象即可
另一个帖子的答案
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;
}
}