哎,多此一举~~ 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); }
ms自己的Array.Sort用的是二分法,据说效率还是不错的 上面的应该改成Array.Sort<char>(chars); 可能会更好点,原来的应该是比较的对象引用,而不是对象值字符串的值是不可变的,要想修改字符串变量的值只能重新分配新的内存,把新的值复制进去 result 不断被修改,这个效率不是太好string result = new string(chars);
---不太明白是不是string str="bacdgfe"
输出abcdefg ?
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;
}
string temp1="0002"
string temp1="0003"
string temp1="0004"排列这些字符串吗?
顶一下,.net2.0中Array.Sort是用的快速排序,效率很高
Array.Sort(chars);
return new string(chars);
static string StringSort(string str)
{
char[] chars = str.ToCharArray();
Array.Sort(chars);
return new string(chars);
}
Array.Sort(chars);
return new string(chars);
这种方法性能比较高因为用+ 拼接字符串 损失性能很大我测了一下 一个用了100多毫秒 一个使用1毫秒左右 非常快 当然我的机器比较快 2.4双核 2G RAM
在C#中数组Sort()排序效率最高 准
好,我重新给个字符传:“cdeapabje”
根据我提的问题写一个函数将它排序从小到大排序(从a到z的排序),自己写的。
哎,多此一举~~ 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);
}
上面的应该改成Array.Sort<char>(chars); 可能会更好点,原来的应该是比较的对象引用,而不是对象值字符串的值是不可变的,要想修改字符串变量的值只能重新分配新的内存,把新的值复制进去
result 不断被修改,这个效率不是太好string result = new string(chars);