现在读有2-3万条记录的文件wj1.txt,每条记录有两个字符串,第一个是英文,后一条是注释,顺序是乱的,现在要求象字典中那样按字母顺序排列,将结果保存再wj2.txt
中.我想了一下,要是用循环--太不行了,可能会循环得死机
wj1.txt的格式 :  good 好的
                 hand 手
                 ……
该用什么算法呢?不要用什么别的控件,我想这些控件也应该是由基本算法建立起来的。希望给出点源码供研究,不要泛泛而谈。

解决方案 »

  1.   

    用数据库存取也不见得快多少
    楼主就算用冒泡排序,假设30000条记录,最慢需运算(30000+1)*30000/2=4亿五千万次
    用现在的CPU运算也可以忍受了
      

  2.   

    没多大的数据(估计顶多3M吧),直接在内存排序就行了var
      SL: TStringList;
    begin
      SL := TStringList.Create();
      try
        SL.LoadFromFile('wjl.txt');
        SL.Sort();
        SL.SaveToFile('sorted_wjl.txt');
      finally
        SL.Destory();
      end;  ShowMessage('OK, 您来点分吧,楼主');
    end;
      

  3.   

    同意楼上 dbExpress(老枪)的,用stringlilst 自己的排序,应该没有问题吧!!写的也很详细,呵呵!~~
      

  4.   

    ShowMessage('OK, 您来点分吧,楼主');
      

  5.   

    dbExpress(老枪)的方法我试了,我用了8W多条都很快.相信楼主可以搞定了.
      

  6.   

    别急,等我测试一下,谁解释一下stringlist的排序方法?这才是我真想知道的。如果搞定明天中午结
      

  7.   

    就是quicksort算法,我也没深入了解过,算法书上应该有讲
      

  8.   

    还又个意外问题,stringlist载入文件的文件名不能又数字,象'wj1.txt'不能打开.
      

  9.   

    我才知道Delphi还有自动排序的功能
      

  10.   

    Delphi中的sort本身就是使用quicksort算法实现的