这是我的一个快速排序字符串的函数,非常快,几十万字符串只要几秒钟。如是其它类型数据需要修改修改。函数中的Mb是一个TStrings类型的全局变量,所以在函数中没有它的定义。procedure SortMb; procedure QuickSort(iLo,iHi:Integer); var Lo,Hi: Integer; Mid: string; begin Lo:=iLo; Hi:=iHi; Mid:=Mb[(Lo + Hi) div 2]; repeat while Mb[Lo]<Mid do Inc(Lo); while Mb[Hi]>Mid do Dec(Hi); if Lo<=Hi then begin Mb.Exchange(Lo,Hi); Inc(Lo); Dec(Hi); end; until Lo>Hi; if Hi>iLo then QuickSort(iLo,Hi); if Lo<iHi then QuickSort(Lo,iHi); end; begin QuickSort(0,Mb.Count-1); end;
procedure QuickSort(iLo,iHi:Integer);
var Lo,Hi: Integer;
Mid: string;
begin
Lo:=iLo; Hi:=iHi; Mid:=Mb[(Lo + Hi) div 2];
repeat
while Mb[Lo]<Mid do Inc(Lo);
while Mb[Hi]>Mid do Dec(Hi);
if Lo<=Hi then
begin
Mb.Exchange(Lo,Hi);
Inc(Lo);
Dec(Hi);
end;
until Lo>Hi;
if Hi>iLo then QuickSort(iLo,Hi);
if Lo<iHi then QuickSort(Lo,iHi);
end;
begin
QuickSort(0,Mb.Count-1);
end;
中国人自己首先要看得起自己!我们卫星也上天了,原子弹也爆炸了,现在CPU也有了,咋了?懒人能做出来吗?
论坛并不是纯粹的问与答,有的时候讨论甚至偏移楼主最初提出的问题,但讨论的过程却经常能开拓思路,这本身也是一件好事。单纯说“懒”,恐怕有些尖刻。对别人宽容也是对自己宽容。比如俺在Delphi论坛中可以解决一般的小问题,但在VC/MFC论坛中却是真正的“新兵蛋子”,也会提出很傻的问题,但通常会有耐心的人给我指导,稍微点拨就能使俺云开日出。
编程已经是很单调很乏味很辛苦很烦躁很上瘾很无奈很痴迷很执着的事情,如果再不学会调整自己的心情,恐怕真的会得抑郁怔。
俺对编程的感觉:一见你就有好心情!(李玫的广告歌曲)