读书人

求高效排序方法()

发布时间: 2012-02-13 17:20:26 作者: rapoo

求高效排序方法(在线等)
有一文本里面内容如下
10011001 hello
10011002 ghheh
.....
数目达到数万行
求一快速排序算法,按照每一行的前面八位将这些字符串排序

[解决办法]
数据结构里那些不行么? 楼主至少弄个折半查找哈.
ArrayList有没有现成的sort函数?
没有的话建议找个Collection啥的,全部添加进去然后sort
[解决办法]
数目达到数万行

-------------------------
这时候不用算法基本就是等死了...
[解决办法]
Quick sort,Shell,冒泡,随便整一个
用个二维数组来装每行
[解决办法]
sortedDictionary
[解决办法]

其你根本不必去考每行後面的英文
把所有行入一
就有些英文一行排序
因排序
它是第一字符排起
排完第一的再考第二
英文的在最後
根本不必理它

[解决办法]
不知道这样可以不可以……
//假设。。。
string strSrc = "10011002 bcd02\r\n10011001 bcd01\r\n10011003 bcd03 ";

//存储对象
System.Collections.Hashtable htData = new System.Collections.Hashtable();
//存储索引
List <string> listIndex = new List <string> ();
System.Text.RegularExpressions.MatchCollection matchs =
System.Text.RegularExpressions.Regex.Matches(strSrc,@ "(? <ID> \d+) (? <name> \w+) ");
foreach (System.Text.RegularExpressions.Match res in matchs)
{
listIndex.Add(res.Groups[ "ID "].Value);
htData.Add(res.Groups[ "ID "].Value, res.Groups[ "name "].Value);
}
listIndex.Sort();
string strResult = string.Empty;
foreach (string strObj in listIndex)
{
strResult += htData[strObj] + "\r\n ";
}
MessageBox.Show(strResult);

读书人网 >C#

热点推荐